2 День 1. Основы R
Для работы с R необходимо его сначала скачать и установить.
-
R
- character: строки символов. Они должны выделяться кавычками. Можно использовать как " , так и ‘ (что удобно, когда строчка внутри уже содержит какие-то кавычки).
- logical: просто TRUE или FALSE .
- Магомет идет к горе: перемещение файлов в рабочую папку.
- Гора идет к Магомету: изменение рабочей папки.
- Гора находит Магомета по месту прописки: указание полного пути файла.
- Магомет использует кнопочный интерфейс: Import Dataset.
- Гора находит Магомета в интернете.
- Каждый Магомет получает по своей горе: использование проектов в RStudio.
- Он знает, как создать образ диска, а затем работать с ним.
- «Реконструкция» дисковых массивов.
- Он поддерживает известные файловые системы.
- Удаленный поиск, то есть через сеть.
- Оборудован редактором.
- HFS, HFS +, HFSX и UFS1, UFS2, UFS и т.д.
- exFAT, ReFS, Ext2 / 3 / 4FS (для Linux и других ОС)
- FAT12 / 16/32, NTFS, NTFS5 (для восстановления Windows и Mac OS)
- флэш-карты, USB-накопители, карты памяти sd и microsd
- восстановление с жесткого диска, cd и dvd
- Защищенные паролем сжатые образы дисков.
- Байтовые копии разделов жесткого диска
- R-Undelete Home
- R-Photo
- R-Linux
- R-Studio Technician для Оказания услуг по Восстановлению Данных
- R-Drive Image для Резервного Копирования и Клонирования Систем
- R-Studio for Windows
- R-Studio for Mac
- R-Studio for Linux
- R-Drive Image
- R-Drive Image Technician
- R-Wipe & Clean
- R-Wipe & Clean for Mac
- Расчёт и Покупка
- Получить Инвойс
- Вопросы-Ответы по Продажам
- Условия Продаж
- Техническая Поддержка
- Отдел Продаж
- Вопросы-Ответы
- Полезная Информация
- Форум R-TT
- Программа Комиссии
- Реселлеры
- Региональные Дистрибьютеры
- Логин
- Многоязычный графический интерфейс пользователя и справка изменяемые «на лету», т.е. без необходимости прерывания работы.
- Добавление собственных сигнатур в файлы известных типов. Для повышения шансов восстановления определенных файлов пользователь может добавлять собственные сигнатуры файлов любой степени сложности. Добавить собственную сигнатуру в файлы известных типов можно либо посредством пользовательского интерфейса, либо путем непосредственного редактирования файла описания сигнатуры.
Вы можете понять как создавать свои собственные типы файлов в нашей статье Создание пользовательского известного типа файла для R-Studio. - Просмотр содержания файлов. Дополнительная функциональность для оценки шансов восстановления файлов. Интегрированный в дистрибутив R-Studio просмотр файлов поддерживает все важные типы файлов: Adobe Acrobat pdf, документы Microsoft Office doc, xls, ppt (Office 97-2003), docx, xlsx, pptx, и огромное количество мультимедийных и графических форматов, причем без установленных соответствующих программ или кодеков. Также возможен просмотр содержания файлов на удаленном компьютере.
- R-Studio Emergency CD. R-Studio Emergency CD основан на ядре Linux и позволяет пользователю восстановить данные с компьютера, который не загружается. Есть две версии R-Studio Emergency: R-Studio Emergency GUI (Graphic User Interface) имеет графический интерфейс схожий с интерфейсом R-Studio. Эта версия может быть запущена на ПК, видеокарта которого поддерживается программой. В противном случае следует воспользоваться версией R-Studio Emergency TUI (Text User Interface), имеющей более простой псевдо-графический интерфейс, но обладающей такой же функциональностью по восстановлению данных. Кроме этого R-Studio Emergency можно использовать для полного удаления данных на диске при утилизации или передаче ПК в пользование другому лицу (в других случаях это функциональность отдельной программы). Вы можете узнать больше о R-Studio Emergency в нашей статье Восстановление Данных При Помощи R-Studio Emergency.
- Образ диска. При помощи R-Studio можно создавать файлы образа диска, являющиеся точной, «байт в байт» копией любого объекта панели Диски (Drives) — такого, как жесткий диск, логический диск или сложный RAID. Образы весьма полезны тогда, когда существует вероятность полной утраты данных вследствие неисправности аппаратной части компьютера. Файлы образов дисков могут обрабатываться программой как обычный диск. Более того, образы можно использовать для создания виртуальных объектов (например, виртуальных RAID). Вдобавок, такие образы можно использовать для резервного копирования данных и аварийного восстановления системы. В процессе создания образа R-Studio может одновременно сканировать копируемые данные.
- Контроль атрибутов S.M.A.R.T. R-Studio позволяет просматривать атрибуты S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) жестких дисков — оценивать их состояние и предсказывать возможный выход из строя.
- Восстановления данных по сети. Функциональность особенно полезна тогда, когда жесткий диск невозможно подсоединить к другому компьютеру, например, при восстановлении данных с ноутбука или если это мешает сделать заводская пломба. Также восстанавливать данные по сети можно, если компьютер не загружается по причине повреждения загрузочного раздела или системных файлов. В этом случае подключите компьютер к рабочей станции по сети и запустите на нем R-Studio Agent Emergency. После получения доступа к диску «проблемного» компьютера он будет обработан R-Studio так же, как любой диск локального компьютера. Если же необходимо восстановить данные с исправно работающего компьютера, то сохраните исполняемый файл R-Studio Agent Portable утилиты R-Studio Agent на любом флэш носителе и запустите его на компьютере, где необходимо восстановить данные. Для получения полного доступа к компьютеру с утраченными данными не требуется его перезагрузки или предварительной инсталляции утилиты, при этом на диск не будут записаны какие-либо новые данные, что повысит шансы восстановления утраченной информации. Кроме этого возможно предварительно инсталлировать R-Studio Agent на компьютеры вашей корпоративной сети. Тогда вам не следует беспокоиться о том, что, например, какой-нибудь менеджер ошибочно удалит файлы и очистит корзину, а затем вспомнит, что среди удаленных файлов были квартальные отчеты. Вы получаете немедленный доступ к компьютеру с утраченными данными без какой-либо инсталляции программы, перезагрузки, перезаписи информации. При этом R-Studio и R-Studio Agent не перекачивают гигабайты данных с одного компьютера на другой по сети. При помощи R-Studio Agent производится анализ данных на удаленном компьютере, и полученная информация затем пересылается на компьютер, где инсталлирована R-Studio. Более того, восстановленные файлы и другую служебную информацию (файлы образы, результаты сканирования и т.д.) можно сохранить на другом диске того же самого удаленного компьютер, не передавая их по сети. Каждый пакет R-Studio Network включает пять лицензий R-Studio Agent/Agent Emergency для удаленных компьютеров.
Кликните по картинке для увеличения
R-Studio получает доступ к данным удаленного компьютера
Вы можете узнать больще о восстановлении данных по сети:
R-Studio: Восстановление Данных по Сети
Восстановление Данных По Сети При Помощи R-Studio Agent Emergency
R-Studio Technician: Восстановление Данных через Интернет - Поддержка сложных уровней RAID, в т.ч. многих «вложенных (nested)» и нестандартных. Поддержка задержки контроля четности для всех соответствующих уровней RAID с улучшенными элементами управления для параметров контроля четности.
- Универсальная схема RAID. Пользователь может создать массив RAID, состоящий из произвольного числа дисков со сложной конфигурацией блоков, различным смещением и размером блоков.
- Чисто виртуальная концепция. Возможность комбинирования жестких дисков, логических дисков, образов и других объектов панели Диски (Drives) при создании виртуального RAID. Вместо утраченной части RAID можно также добавить виртуальный объект свободное место (empty space) или пропущенный диск (missing disk). Гибкая настройка параметров RAID, позволяющая сразу же их изменять для нахождения корректной конфигурации.
- Полная интеграция. Сразу после создания виртуального RAID можно начать анализировать его данные при помощи R-Studio. Может быть выполнена любая задача по восстановлению данных. Нет необходимости копировать содержимое воссозданного RAID на другой носитель.
- Автоматическое распознавание параметров RAID. R-Studio способна распознавать все параметры для RAID 5 и 6. Это позволяет пользователю решить одну из наиболее трудных задач при восстановлении RAID — определение его параметров.
- Проверка целостности данных RAID: можно проверить правильность блоков четности на RAID.
- Обратные RAID. Эта техника позволяет «разложить» реальный дисковый объект на виртуальный RAID. Затем компоненты такого виртуального RAID можно обрабатывать как реальные объекты. Они могут быть просмотрены, отредактированы, с них могут быть созданы образы, скопированы на физические диски и т.п. Также эта техника позволяет восстанавливать данные на реальных родителях виртуального RAID. Например, становится возможным восстановить данные на отсутствующем диске.
- Поддержка динамических дисков в Windows (программных RAID’ов), Windows Storage Spaces (созданные в Windows 8/8.1 и 10), технологий программных RAID’ов, CoreStorage, File Vault, и Fusion Drive от фирмы Apple, а так же Linux Logical Volume Manager (LVM/LVM2) и mdadm RAID’ов. R-Studio способна автоматически распознавать их компоненты и собирать их в тома, даже если их базы данных слегка повреждены. В случае серьезного повреждения баз данных эти компоненты можно добавить вручную.
- Анализ данных на диске в соответствие с шаблонами данных. Пользователь не просто видит в редакторе шестнадцатиричные или текстовые данные, а имеет возможность их сопоставить с различными шаблонами данных: загрузочных записей, MFT, FAT32, файлов и т.д.
- Пользовательские шаблоны данных. Пользователь может создавать собственные шаблоны для анализа данных в соответствие со спецификой их структуры. Возможно создать шаблоны для анализа какой-либо новой файловой системы (например, нестандартного устройства записи видео).
- Поддерживаемые файловые системы: FAT12, FAT16, FAT32, exFAT, NTFS, NTFS5, HFS/HFS+, UFS1/UFS2, Ext2/Ext3/Ext4 FS.
- Содержит модуль реконструкции дисковых массивов RAID.
- Содержит отдельный модуль резервного копирования системы и данных (копирования диска).
- Создание ФАЙЛА-ОБРАЗА для целого Физического Диска (HD), Раздела или его части.
- Восстановление данных после того, как раздел с файлами был переформатирован, даже в раздел с другой файловой системой, с поврежденных или удаленных разделов, зашифрованных файлов (NTFS 5), альтернативных потоков данных (NTFS, NTFS 5).
- Восстановление данных после запуска FDISK или аналогичных утилит; после вирусной атаки; повреждения FAT; разрушения MBR.
- Восстановленные файлы могут быть сохранены на любой, включая сетевой, диск, доступный локальной операционной системой.
- Файлы или содержимое диска может быть просмотрено и отредактировано с помощью встроенного шестнадцатиричного редактора. Редактор поддерживает редактирование свойств NTFS файлов.
- Улучшения в работе программы
- Исправлены ошибки
-
, найдите большую кнопку Download R (номер версии) for Windows. , если маку меньше, чем 5 лет, то смело ставьте *.pkg файл с последней версией. Если старше, то поищите на той же странице версию для вашей системы. , также можно добавить зеркало и установить из командной строки:
В данной книге используется следующая версия R:
После установки R необходимо скачать и установить RStudio:
Если вдруг что-то установить не получается (или же вы просто не хотите устанавливать на компьютер лишние программы), то можно работать в облаке, делая все то же самое в веб-браузере:
Первый и вполне закономерный вопрос: зачем мы ставили R и отдельно еще какой-то RStudio? Если опустить незначительные детали, то R — это сам язык программирования, а RStudio — это среда (IDE), которая позволяет в этом языке очень удобно работать.
RStudio — это единственная среда для R, но, определенно, самая удобная на сегодняшний день, у нее практически нет конкурентов. Почти все пользуются именно ею и не стоит тратить время на поиск чего-то более удобного и лучшего. Если же вы привыкли работать с Jupyter Notebook
Естественно, RStudio — не единственная среда для R, но, определенно, самая крутая. Почти все пользуются именно ею и не стоит тратить время на поиск чего-то более удобного и лучшего. Если Вы привыкли к Jupyter Notebook, то здесь тоже есть ноутбуки (RNotebook — хотя это и не совсем то же самое), но еще есть и кое-что покруче — RMarkdown. И с этим мы тоже разберемся!
2.1.2 RStudio
Так, давайте взглянем на то, что нам тут открылось:
В первую очередь нас интересуют два окна: 1 — Code Editor (окно для написания скриптов) 1 и 2 — R Console (консоль). Здесь можно писать команды и запускать их. При этом работа в консоли и работа со скриптом немного различается.
В 2 — R Console вы пишите команду и запускаете ее нажиманием Enter . Иногда после запуска команды появляется какой-то результат. Если нажимать стрелку вверх на клавиатуре, то можно выводить в консоль предыдущие команды. Это очень удобно для запуска предыдущих команд с небольшими изменениями.
В 1 — Code Editor для запуска команды вы должны выделить ее и нажать Ctrl + Enter ( Cmd + Enter на macOS). Если не нажать эту комбинацию клавиш, то команда не запустится. Можно выделить и запустить сразу несколько команд или даже все команды скрипта. Все команды скрипта можно выделить с помощью сочетания клавиш Ctrl + A на Windows и Linux, Cmd + A на macOS. 2 Как только вы запустите команду (или несколько команд), соответствующие строчки кода появятся в 2 — R Console, как будто бы вы запускали их прямо там.
Обычно в консоли удобно что-то писать, чтобы быстро что-то посчитать. Скрипты удобнее при работе с длинными командами и как способ сохранения написанного кода для дальнейшей работы. Для сохранения скрипта нажмите File — Save As. . R скрипты сохраняются с разрешением .R, но по своей сути это просто текстовые файлы, которые можно открыть и модифицировать в любом текстовом редакторе а-ля “Блокнот”.
3 — Workspace and History — здесь можно увидеть переменные. Это поле будет автоматически обновляться по мере того, как Вы будете запускать строчки кода и создавать новые переменные. Еще там есть вкладка с историей всех команд, которые были запущены.
4 — Plots and files. Здесь есть очень много всего. Во-первых, небольшой файловый менеджер, во-вторых, там будут появляться графики, когда вы будете их рисовать. Там же есть вкладка с вашими пакетами ( Packages ) и Help по функциям. Но об этом потом.
2.1.3 R как калькулятор
R — полноценный язык программирования, который позволяет решать широкий спектр задач. Но в первую очередь R используется для анализа данных и статистических вычислений. Тем не менее, многими R до сих пор воспринимается как просто продвинутый калькулятор. Ну что ж, калькулятор, так калькулятор.
Давайте начнем с самого простого и попробуем использовать R как калькулятор с помощью арифметических операторов + , — , * , / , ^ (степень), () и т.д.
Просто запускайте в консоли пока не надоест:
Попробуйте самостоятельно посчитать что-нибудь с разными числами.

Ничего сложного, верно? Вводим выражение и получаем результат.
Вы могли заметить, что некоторые команды у меня заканчиваются знаком решетки ( # ). Все, что написано в строчке после # игнорируется R при выполнении команды. Написанные команды в скрипте рекомендуется сопровождать комментариями, которые будут объяснять вам же в будущем (или кому-то еще), что конкретно происходит в соответствующем куске кода. 3 Кроме того, комментарии можно использовать в тех случаях, когда вы хотите написать кусок кода по-другому, не стирая полностью предыдущий код: достаточно “закомментить” нужные строчки — поставить # в начало каждой строки, которую вы хотите переписать. Для этого есть специальное сочетание горячих клавиш: Ctrl + Shift + C ( Cmd + Shift + C на macOS) — во всех выделенных строчках будет написан # в начале.
Согласно данным навязчивых рекламных баннеров в интернете, только 14% россиян могут справиться с этим примером:
На самом деле, разные языки программирования ведут себя по-разному в таких ситуациях, поэтому ответ 6 (сначала умножаем, потом складываем) не так очевиден.
Порядок выполнения арифметических операций (т.е. приоритет операторов, operator precedence) в R как в математике, так что не забывайте про скобочки.
Если Вы не уверены в том, какие операторы имеют приоритет, то используйте скобочки, чтобы точно обозначить, в каком порядке нужно производить операции. Или же смотрите на таблицу приоритета операторов с помощью команды ?Syntax .
2.1.4 Функции
Давайте теперь извлечем корень из какого-нибудь числа. В принципе, тем, кто помнит школьный курс математики, возведения в степень вполне достаточно:
Ну а если нет, то можете воспользоваться специальной функцией: это обычно какие-то буквенные символы с круглыми скобками сразу после названия функции. Мы подаем на вход (внутрь скобочек) какие-то данные, внутри этих функций происходят какие-то вычисления, которые выдает в ответ какие-то другие данные (или же функция записывает файл, рисует график и т.д.).
Вот, например, функция для корня:
R — case-sensitive язык, т.е. регистр важен. SQRT(16) не будет работать.
А вот так выглядит функция логарифма:
Так, вроде бы все нормально, но… Если Вы еще что-то помните из школьной математики, то должны понимать, что что-то здесь не так.
Здесь не хватает основания логарифма!
Логарифм — показатель степени, в которую надо возвести число, называемое основанием, чтобы получить данное число.
То есть у логарифма 8 по основанию 2 будет значение 3:
То есть если возвести 2 в степень 3 у нас будет 8:
Только наша функция считает все как-то не так.
Чтобы понять, что происходит, нам нужно залезть в хэлп этой функции:
Справа внизу в RStudio появится вот такое окно:
Действительно, у этой функции есть еще аргумент base = . По дефолту он равен числу Эйлера (2.7182818…), т.е. функция считает натуральный логарифм. В большинстве функций R есть какой-то основной инпут — данные в том или ином формате, а есть и дополнительные параметры, которые можно прописывать вручную, если параметры по умолчанию нас не устраивают.
…или просто (если Вы уверены в порядке переменных):
Более того, Вы можете использовать оутпут одних функций как инпут для других:
Отличненько. Мы еще много раз будем возвращаться к функциям. Вообще, функции — это одна из важнейших штук в R (примерно так же как и в Python). Мы будем создавать свои функции, использовать функции как инпут для функций и многое-многое другое. В R очень крутые возможности работы с функциями. Поэтому подружитесь с функциями, они клевые.
Арифметические знаки, которые мы использовали: + , — , / , ^ и т.д. называются операторами и на самом деле тоже являются функциями:
2.1.5 Переменные
Важная штука в программировании на практически любом языке — возможность сохранять значения в переменных. В R это обычно делается с помощью вот этих символов: <- (но можно использовать и обычное = , хотя это не очень принято). Для этого есть удобное сочетание клавиш: нажмите одновременно Alt + — (или option + — на macOS).
Заметьте, при присвоении результат вычисления не выводится в консоль! Если опустить детали, то обычно результат выполнения комманды либо выводится в консоль, либо записывается в переменную.
После присвоения переменная появляется во вкладке Environment в RStudio:
Можно использовать переменные в функциях и просто вычислениях:
Вы можете сравнивать разные переменные:
Заметьте, что сравнивая две переменные мы используем два знака равно == , а не один = . Иначе это будет означать присвоение.
Теперь Вы сможете понять комикс про восстание роботов на следующей странице (пусть он и совсем про другой язык программирования)
Этот комикс объясняет, как важно не путать присваивание и сравнение (хотя я иногда путаю до сих пор =( ).
Иногда нам нужно проверить на неравенство:
Восклицательный язык в программировании вообще и в R в частности стандартно означает отрицание.
Еще мы можем сравнивать на больше/меньше:
2.2 Типы данных
До этого момента мы работали только с числами (numeric):
Вообще, в R много типов numeric: integer (целые), double (с десятичной дробью), complex (комплексные числа). Последние пишутся так: complexnumber <- 2+2i Однако в R с этим обычно можно вообще не заморачиваться, R сам будет конвертить между форматами при необходимости. Немного подробностей здесь:
Теперь же нам нужно ознакомиться с двумя другими важными типами данных в R:
Вообще, можно еще писать T и F (но не True и False !)
Это дурная практика, так как R защищает от перезаписи переменные TRUE и FALSE , но не защищает от этого T и F
Теперь вы можете догадаться, что результаты сравнения, например, числовых или строковых переменных вы можете сохранять в переменные тоже!
Это нам очень понадобится, когда мы будем работать с реальными данными: нам нужно будет постоянно вытаскивать какие-то данные из датасета, а это как раз и построено на игре со сравнением переменных.
Чтобы этим хорошо уметь пользоваться, нам нужно еще освоить как работать с логическими операторами. Про один мы немного уже говорили — это не ( ! ):
Еще есть И (выдаст TRUE только в том случае если обе переменные TRUE ):
А еще ИЛИ (выдаст TRUE в случае если хотя бы одна из переменных TRUE ):
Поздравляю, мы только что разобрались с самой занудной (но очень важной!) частью. Пора переходить к важному и интересному. ВЕКТОРАМ!
2.3 Вектор
Если у вас не было линейной алгебры (или у вас с ней было все плохо), то просто запомните, что вектор (atomic vector или просто atomic) — это набор (столбик) чисел в определенном порядке.
Если вы привыкли из школьного курса физики считать вектора стрелочками, то не спешите возмущаться и паниковать. Представьте стрелочки как точки из нуля координат <0,0>до какой-то точки на координатной плоскости, например, <2,3>:

Вот последние два числа и будем считать вектором. Попытайтесь теперь мысленно стереть координатную плоскость и выбросить стрелочки из головы, оставив только последовательность чисел <2,3>:

На самом деле, мы уже работали с векторами в R, но, возможно, вы об этом даже не догадывались. Дело в том, что в R нет как таковых скалярных (т.е. одиночных) значений, есть вектора длиной 1. Такие дела!
Чтобы создать вектор из нескольких значений, нужно воспользоваться функцией c() :
Создавать вектора можно не только из numeric, но также и из character и logical:
Одна из самых мерзких и раздражающих причин ошибок в коде — это использование с из кириллицы вместо c из латиницы. Видите разницу? И я не вижу. А R видит.
Для создания числовых векторов есть удобный оператор :
Этот оператор создает вектор от первого числа до второго с шагом 1. Вы не представляете, как часто эта штука нам пригодится… Если же нужно сделать вектор с другим шагом, то есть функция seq() :
Кроме того, можно задавать не шаг, а длину вектора. Тогда шаг функция seq() посчитает сама:
Другая функция — rep() — позволяет создавать вектора с повторяющимися значениями. Первый аргумент — значение, которое нужно повторять, а второй аргумент — сколько раз повторять.
И первый, и второй аргумент могут быть векторами!
Еще можно объединять вектора (что мы, по сути, и делали, просто с векторами длиной 1):
Очень многие функции в R работают именно с векторами. Например, функции sum() (считает сумму значений вектора) и mean() (считает среднее арифметическое всех значений в векторе):
2.3.1 Приведение типов
Что будет, если вы объедините два вектора с значениями разных типов? Ошибка?
Мы уже обсуждали, что в atomic может быть только один тип данных. В некоторых языках программирования при операции с данными разных типов мы бы получили ошибку. А вот в R при несовпадении типов пройзойдет попытка привести типы к “общему знаменателю”, то есть конвертировать данные в более “широкий” тип.
FALSE превратился в 0 (а TRUE превратился бы в 1 ), чтобы оба значения можно было объединить в вектор. То же самое произошло бы в случае операций с векторами:
Это называется неявным приведением типов (implicit coercion).
Вот более сложный пример:
У R есть иерархия коэрсинга:
NULL < raw < logical < integer < double < complex < character < list < expression .
Мы из этого списка еще многого не знаем, сейчас важно запомнить, что логические данные — TRUE и FALSE — превращаются в 0 и 1 соответственно, а 0 и 1 в строчки "0" и "1" .
Если Вы боитесь полагаться на приведение типов, то можете воспользоваться функциями as.нужныйтипданных для явного приведения типов (explicit coercion):
Можно превращать и обратно, например, строковые значения в числовые. Если среди числа встретится буква или другой неподходящий знак, то мы получим предупреждение NA — пропущенное значение (мы очень скоро научимся с ними работать).
Один из распространенных примеров использования неявного приведения типов — использования функций sum() и mean() для подсчета в логическом векторе количества и доли TRUE соответсвенно. Мы будем много раз пользоваться этим приемом в дальнейшем!
2.3.2 Векторизация
Все те арифметические операторы, что мы использовали ранее, можно использовать с векторами одинаковой длины:
Если применить операторы на двух векторах одинаковой длины, то в мы получим результат поэлементного применения оператора к двум векторам. Это называется векторизацией (vectorization).
Если после какого-нибудь MATLAB Вы привыкли, что по умолчанию операторы работают по правилам линейной алгебры и m*n будет давать скалярное произведение (dot product), то снова нет. Для скалярного произведения нужно использовать операторы с % по краям:
Абсолютно так же и с операциями с матрицами в R, хотя про матрицы будет немного позже.
В принципе, большинство функций в R, которые работают с отдельными значениями, так же хорошо работают и с целыми векторами. Скажем, Вы хотите извлечь корень из нескольких чисел, для этого не нужны никакие циклы (как это обычно делается в других языках программирования). Можно просто “скормить” вектор функции и получить результат применения функции к каждому элементу вектора:
Таких векторизованных функций в R очень много. Многие из них написаны на более низкоуровневых языках программирования (C, C++, FORTRAN), за счет чего использование таких функций приводит не только к более элегантному, лаконичному, но и к более быстрому коду.
Векторизация в R — это очень важная фишка, которая отличает этот язык программирования от многих других. Если вы уже имеете опыт программирования на другом языке, то вам во многих задачах захочется использовать циклы типа for и while 3.2.3. Не спешите этого делать! В очень многих случаях циклы можно заменить векторизацией. Тем не менее, векторизация — это не единственный способ избавить от циклов типа for и while 3.2.5.
2.3.3 Recycling
Допустим мы хотим совершить какую-нибудь операцию с двумя векторами. Как мы убедились, с этим обычно нет никаких проблем, если они совпадают по длине. А что если вектора не совпадают по длине? Ничего страшного! Здесь будет работать правило ресайклинга (правило переписывания, recycling rule). Это означает, что если мы делаем операцию на двух векторах разной длины, то если короткий вектор кратен по длине длинному, короткий вектор будет повторяться необходимое количество раз:
А что будет, если совершать операции с вектором и отдельным значением? Можно считать это частным случаем ресайклинга: короткий вектор длиной 1 будет повторятся столько раз, сколько нужно, чтобы он совпадал по длине с длинным:
Если же меньший вектор не кратен большему (например, один из них длиной 3, а другой длиной 4), то R посчитает результат, но выдаст предупреждение.
Проблема в том, что эти предупреждения могут в неожиданный момент стать причиной ошибок. Поэтому не стоит полагаться на ресайклинг некратных по длине векторов. См. здесь. А вот ресайклинг кратных по длине векторов — это очень удобная штука, которая используется очень часто.
2.3.4 Индексирование векторов
Итак, мы подошли к одному из самых сложных моментов. И одному из основных. От того, как хорошо вы научись с этим работать, зависит весь ваш дальнейший успех на R-поприще!
Речь пойдет об индексировании векторов. Задача, которую Вам придется решать каждые пять минут работы в R — как выбрать из вектора (или же списка, матрицы и датафрейма) какую-то его часть. Для этого используются квадратные скобочки [] (не круглые — они для функций!).
Самое простое — индексировать по номеру индекса, т.е. порядку значения в векторе.
Если вы знакомы с другими языками программирования (не MATLAB, там все так же) и уже научились думать, что индексация с 0 — это очень удобно и очень правильно (ну или просто свыклись с этим), то в R Вам придется переучиться обратно. Здесь первый индекс — это 1, а последний равен длине вектора — ее можно узнать с помощью функции length() . С обоих сторон индексы берутся включительно.
С помощью индексирования можно не только вытаскивать имеющиеся значения в векторе, но и присваивать им новые:
Конечно, можно использовать целые векторы для индексирования:
Индексирование с минусом выдаст вам все значения вектора кроме выбранных:
Более того, можно использовать логический вектор для индексирования. В этом случае нужен логический вектор такой же длины:
Ну а если они не равны, то тут будет снова работать правило ресайклинга!
Есть еще один способ индексирования векторов, но он несколько более редкий: индексирование по имени. Дело в том, что для значений векторов можно (но не обязательно) присваивать имена:
А еще можно “вытаскивать” имена из вектора с помощью функции names() и присваивать таким образом новые.
letters — это “зашитая” в R константа — вектор букв от a до z. Иногда это очень удобно! Кроме того, есть константа LETTERS — то же самое, но заглавными буквами. А еще есть названия месяцев на английском и числовая константа pi .
Теперь посчитаем среднее вектора n :
А как вытащить все значения, которые больше среднего?
Сначала получим логический вектор — какие значения больше среднего:
А теперь используем его для индексирования вектора n :
Можно все это сделать в одну строчку:
Предыдущая строчка отражает то, что мы будем постоянно делать в R: вычленять (subset) из данных отдельные куски на основании разных условий.
2.3.5 NA — пропущенные значения
В реальных данных у нас часто чего-то не хватает. Например, из-за технической ошибки или невнимательности не получилось записать какое-то измерение. Для этого в R есть NA (расшифровывается как Not Available — недоступное значение). NA — это не строка "NA" , не 0 , не пустая строка "" и не FALSE . NA — это NA . Большинство операций с векторами, содержащими NA будут выдавать NA :
Заметьте: даже сравнение NA c NA выдает NA !
Иногда NA в данных очень бесит:
Что же делать?
Наверное, надо сравнить вектор с NA и исключить этих пакостников. Давайте попробуем:
Ах да, мы ведь только что узнали, что даже сравнение NA c NA приводит к NA …
Чтобы выбраться из этой непростой ситуации, используйте функцию is.na() :
Результат выполнения is.na(n) выдает FALSE в тех местах, где у нас числа и TRUE там, где у нас NA . Нам нужно сделать наоборот. Здесь нам понадобится оператор ! (мы его уже встречали), который инвертирует логические значения:
Ура, мы можем считать среднее!
Теперь Вы понимаете, зачем нужно отрицание ( ! )
Вообще, есть еще один из способов посчитать среднее, если есть NA . Для этого надо залезть в хэлп по функции mean():
В хэлпе мы найдем параметр na.rm = , который по дефолту FALSE . Вы знаете, что нужно делать!
NA может появляться в векторах других типов тоже. Более того, на самом деле, это все разные NA : логический NA , NA_integer_ , NA_real_ , NA_complex_ and NA_character_ .
Кроме NA есть еще NaN — это разные вещи. NaN расшифровывается как Not a Number и получается в результате таких операций как 0 / 0 . Тем не менее, функция is.na() выдает TRUE на NaN , а вот функция is.nan() выдает TRUE на NaN и FALSE на NA :
2.3.6 В любой непонятной ситуации — гуглите
Если вдруг вы не знаете, что искать в хэлпе, или хэлпа попросту недостаточно, то… гуглите!

Нет ничего постыдного в том, чтобы гуглить решения проблем. Это абсолютно нормально. Используйте силу интернета во благо и да помогут Вам Stackoverflow 4 и бесчисленные R-туториалы!
Computer Programming To Be Officially Renamed “Googling Stack Overflow”

Главное, помните: загуглить работающий ответ всегда недостаточно. Надо понять, как и почему решение работает. Иначе что-то обязательно пойдет не так.
Кроме того, правильно загуглить проблему — не так уж и просто.
Does anyone ever get good at R or do they just get good at googling how to do things in R
— Lauren M. Seyler, Ph.D.❤️⚒ ( ( . ) ) May 6, 2019
Итак, с векторами мы более-менее разобрались. Помните, что вектора — это один из краеугольных камней вашей работы в R. Если вы хорошо с ними разобрались, то дальше все будет довольно несложно. Тем не менее, вектора — это не все. Есть еще два важных типа данных: списки (list) и матрицы (matrix). Их можно рассматривать как своеобразное “расширение” векторов, каждый в свою сторону. Ну а списки и матрицы нужны чтобы понять основной тип данных в R — data.frame.

2.4 Матрицы (matrix)
Если вдруг вас пугает это слово, то совершенно зря. Матрица — это всего лишь “двумерный” вектор: вектор, у которого есть не только длина, но и ширина. Создать матрицу можно с помощью функции matrix() из вектора, указав при этом количество строк и столбцов.
Если мы знаем сколько значений в матрице и сколько мы хотим строк, то количество столбцов указывать необязательно:
Все остальное так же как и с векторами: внутри находится данные только одного типа. Поскольку матрица — это уже двумерный массив, то у него имеется два индекса. Эти два индекса разделяются запятыми.
Первый индекс — выбор строк, второй индекс — выбор колонок. Если же мы оставляем пустое поле вместо числа, то мы выбираем все строки/колонки в зависимости от того, оставили мы поле пустым до или после запятой:
Так же как и в случае с обычными векторами, часть матрицы можно переписать:
В принципе, это все, что нам нужно знать о матрицах. Матрицы используются в R довольно редко, особенно по сравнению, например, с MATLAB. Но вот индексировать матрицы хорошо бы уметь: это понадобится в работе с датафреймами.
То, что матрица — это просто двумерный вектор, не является метафорой: в R матрица — это по сути своей вектор с дополнительными атрибутами dim и (опционально) dimnames . Атрибуты — это свойства объектов, своего рода “метаданные”. Для всех объектов есть обязательные атрибуты типа и длины и могут быть любые необязательные атрибуты. Можно задавать свои атрибуты или удалять уже присвоенные: удаление атрибута dim у матрицы превратит ее в обычный вектор. Про атрибуты подробнее можно почитать здесь или на стр. 99-101 книги “R in a Nutshell” ( . ) .
2.5 Списки (list)
Теперь представим себе вектор без ограничения на одинаковые данные внутри. И получим список!
А это значит, что там могут содержаться самые разные данные, в том числе и другие списки и векторы!
Если у нас сложный список, то есть очень классная функция, чтобы посмотреть, как он устроен, под названием str() :
Представьте, что список — это такое дерево с ветвистой структурой. А на конце этих ветвей — листья-векторы.
Как и в случае с векторами мы можем давать имена элементам списка:
К списку можно обращаться как с помощью индексов, так и по именам. Начнем с последнего:
А вот с индексами сложнее, и в этом очень легко запутаться. Давайте попробуем сделать так, как мы делали это раньше:
Мы, по сути, получили элемент списка — просто как часть списка, т.е. как список длиной один:
А вот чтобы добраться до самого элемента списка (и сделать с ним что-то хорошее) нам нужна не одна, а две квадратных скобочки:
Indexing lists in #rstats. Inspired by the Residence Inn pic.twitter.com/YQ6axb2w7t
— Hadley Wickham ( ( . ) ) September 14, 2015
Как и в случае с вектором, к элементу списка можно обращаться по имени.
Хотя последнее — практически то же самое, что и использование знака $.
Списки довольно часто используются в R, но реже, чем в Python. Со многими объектами в R, такими как результаты статистических тестов, удобно работать именно как со списками — к ним все вышеописанное применимо. Кроме того, некоторые данные мы изначально получаем в виде древообразной структуры — хочешь не хочешь, а придется работать с этим как со списком. Но обычно после этого стоит как можно скорее превратить список в датафрейм.
2.6 Data.frame
Итак, мы перешли к самому главному. Самому-самому. Датафреймы (data.frames). Более того, сейчас станет понятно, зачем нам нужно было разбираться со всеми предыдущими темами.
Без векторов мы не смогли бы разобраться с матрицами и списками. А без последних мы не сможем понять, что такое датафрейм.
Вообще, очень похоже на список, не правда ли? Так и есть, датафрейм — это что-то вроде проименованного списка, каждый элемент которого является atomic вектором фиксированной длины. Скорее всего, список Вы представляли “горизонтально”. Если это так, то теперь “переверните” его у себя в голове на 90 градусов. Так, чтоб названия векторов оказались сверху, а колонки стали столбцами. Поскольку длина всех этих векторов равна (обязательное условие!), то данные представляют собой табличку, похожую на матрицу. Но в отличие от матрицы, разные столбцы могут имет разные типы данных: первая колонка — character , вторая колонка — numeric , третья колонка — logical . Тем не менее, обращаться с датафреймом можно и как с проименованным списком, и как с матрицей:
Здесь мы сначала вытащили колонку age с помощью оператора $ . Результатом этой операции является числовой вектор, из которого мы вытащили кусок, выбрав индексы 2 и 3 .
Используя оператор $ и присваивание можно создавать новые колонки датафрейма:
Ну а можно просто обращаться с помощью двух индексов через запятую, как мы это делали с матрицей:
Как и с матрицами, первый индекс означает строчки, а второй — столбцы.
А еще можно использовать названия колонок внутри квадратных скобок:
И здесь перед нами открываются невообразимые возможности! Узнаем, любят ли R те, кто моложе среднего возраста в группе:
Эту же задачу можно выполнить другими способами:
В большинстве случаев подходят сразу несколько способов — тем не менее, стоит овладеть ими всеми.
Датафреймы удобно просматривать в RStudio. Для это нужно написать команду View(df) или же просто нажать на названии нужной переменной из списка вверху справа (там где Environment). Тогда увидите табличку, очень похожую на Excel и тому подобные программы для работы с таблицами. Там же есть и всякие возможности для фильтрации, сортировки и поиска… 5

Но, конечно, интереснее все эти вещи делать руками, т.е. с помощью написания кода.
На этом пора заканчивать с введением и приступать к работе с реальными данными.
2.7 Начинаем работу с реальными данными
Итак, пришло время перейти к реальным данным. Мы начнем с использования датасета (так мы будем называть любой набор данных) по Игре Престолов, а точнее, по книгам цикла “Песнь льда и пламени” Дж. Мартина. Да, будут спойлеры, но сериал уже давно закончился и сильно разошелся с книгами…
2.7.1 Рабочая папка и проекты
Для начала скачайте файл по ссылке
Он, скорее всего, появился у Вас в папке “Загрузки”. Если мы будем просто пытаться прочитать этот файл (например, с помощью read.csv() — мы к этой функцией очень скоро перейдем), указав его имя и разрешение, то наткнемся на такую ошибку:
Это означает, что R не может найти нужный файл. Вообще-то мы даже не сказали, где искать. Нам нужно как-то совместить место, где R ищет загружаемые файлы и сами файлы. Для этого есть несколько способов.
Для этого нужно узнать, какая папка является рабочей с помощью функции getwd() (без аргументов), найти эту папку в проводнике и переместить туда файл. После этого можно использовать просто название файла с разрешением:
Можно просто сменить рабочую папку с помощью setwd() на ту, где сейчас лежит файл, прописав путь до этой папки. Теперь файл находится в рабочей папке:
Этот вариант использовать не рекомендуется. Как минимум, это сразу делает невозможным запустить скрипт на другом компьютере.
Этот вариант страдает теми же проблемами, что и предыдущий, поэтому тоже не рекомендуется.
Для пользователей Windows есть дополнительная сложность: знак / является особым знаком для R, поэтому вместо него нужно использовать двойной // .
Во вкладке Environment справа в окне RStudio есть кнопка Import Dataset. Возможно, у Вас возникло непреодолимое желание отдохнуть от написания кода и понажимать кнопочки — сопротивляйтесь этому всеми силами, но не вините себя, если не сдержитесь.
Многие функции в R, предназначенные для чтения файлов, могут прочитать файл не только на Вашем компьютере, но и сразу из интернета. Для этого просто используйте ссылку вместо пути:
File — New Project. , Затем New Directory , New Project , выбираете подходящее Directory Name и нажимаете Create Project .
На первый взгляд это кажется чем-то очень сложным, но это не так. Пользоваться проектами очень просто и ОЧЕНЬ удобно. При создании проекта создается отдельная папочка, где у Вас лежат данные, хранятся скрипты, вспомогательные файлы и отчеты. Если нужно вернуться к другому проекту — просто открываете другой проект, с другими файлами и скриптами. Это еще помогает не пересекаться переменным из разных проектов — а то, знаете, использование двух переменных data в разных скриптах чревато ошибками. Поэтому очень удобным решением будет выделение отдельного проекта под этот курс.
А еще проекты очень удобно работают совместно с системами контроля версий, в частности, с Git. В RStudio есть для этого удобные инструменты. Самый простой способ — при создании проекта File — New Project. выбрать Version Control , затем выбрать Git или Subversion и указать ссылку на репозиторий. После этого RStudio его склонирует и все сам настроит. Вот здесь есть подробный туториал по работе с Git и RStudio.
2.7.2 Импорт данных
Как Вы уже поняли, импортирование данных — одна из самых муторных и неприятных вещей в R. Если у Вас получится с этим справиться, то все остальное — ерунда. Мы уже разобрались с первой частью этого процесса — нахождением файла с данными, осталось научиться их читать.
Здесь стоит сделать небольшую ремарку. Довольно часто данные представляют собой табличку. Или же их можно свести к табличке. Такая табличка, как мы уже выяснили, удобно репрезентируется в виде датафрейма. Но как эти данные хранятся на компьютере? Есть два варианта: в бинарном и в текстовом файле.
Текстовый файл означает, что такой файл можно открыть в программе “Блокнот” или ее аналоге и увидеть напечатанный текст: скрипт, роман или упорядоченный набор цифр и букв. Нас сейчас интересует именно последний случай. Таблица может быть представлена как текст: отдельные строчки в файле будут разделять разные строчки таблицы, а какой-нибудь знак-разделитель отделет колонки друг от друга.
Для чтения данных из текстового файла есть довольно удобная функция read.table() . Почитайте хэлп по ней и ужаснитесь: столько разных параметров на входе! Но там же вы увидете функции read.csv() , read.csv2() и некоторые другие — по сути, это тот же read.table() , но с другими дефолтными параметрами, соответствующие формату файла, который мы загружаем. В данном случае используется формат .csv, что означает Comma Separated Values (Значения, Разделенные Запятыми). Это просто текстовый файл, в котором “закодирована” таблица: разные строчки разделяют разные строчки таблицы, а столбцы отделяются запятыми. С этим связана одна проблема: в некоторых странах (в т.ч. и России) принято использовать запятую для разделения дробной части числа, а не точку, как это делается в большинстве стран мира. Поэтому есть “другой” формат .csv, где значения разделены точкой с запятой ( ; ), а дробные значения — запятой ( , ). В этом и различие функций read.csv() и read.csv2() — первая функция предназначена для “международного” формата, вторая — для (условно) “Российского”.
В первой строчке обычно содержатся названия столбцов — и это чертовски удобно, функции read.csv() и read.csv2() по умолчанию считают первую строчку именно как название для колонок.
Итак, прочитаем наш файл. Для этого используем только параметр file = , который идет первым, и для параметра stringsAsFactors = поставим значение FALSE :
По умолчанию, функции семейства read.table() читают character переменные как фактор (factor). По сути, факторы — это примерно то же самое, что и character, но закодированные числами. Когда-то это было придумано для экономии используемых времени и памяти: вместо того, чтобы хранить многократно “male” и “female”, можно закодировать их числами 1 и 2, записав отдельно, как расшифровывается 1 и 2. На сегодняшний день факторы обычно становится просто лишней морокой, хотя факторы могут быть удобным инструментом для контроля порядка значений при визуализации данных. Некоторые функции требуют именно character, некоторые factor, в большинстве случаев это без разницы. Но иногда непонимание может привести к дурацким ошибкам. В данном случае мы просто пока обойдемся без факторов.
Можете проверить с помощью View(got) : все работает! Если же вылезает какая-то странная ерунда или же просто ошибка — попробуйте другие функции и покопаться с параметрами. Для этого читайте Help.
Кроме .csv формата есть и другие варианты хранения таблиц в виде текста. Например, .tsv — тоже самое, что и .csv, но разделитель — знак табуляции. Для чтения таких файлов есть функция read.delim() и read.delim2() . Впрочем, даже если бы ее и не было, можно было бы просто подобрать нужные параметры для функции read.table() . Есть даже функции (например, fread() из пакета data.table — мы ее будем использовать завтра!), которые пытаются сами “угадать” нужные параметры для чтения — часто они справляются с этим довольно удачно. Но не всегда. Поэтому стоит научиться справляться с любого рода данными на входе.
Тем не менее, далеко не всегда таблицы представлены в виде текстового файла. Самый распространенный пример таблицы в бинарном виде — родные форматы Microsoft Excel. Если Вы попробуете открыть .xlsx файл в Блокноте, то увидите кракозябры. Это делает работу с этим файлами гораздо менее удобной, поэтому стоит избегать экселевских форматов и стараться все сохранять в .csv.
Для работы с экселевскими файлами есть много пакетов: readxl, xlsx, openxlsx. Для чтения файлов SPSS, Stata, SAS есть пакет foreign. Что такое пакеты и как их устанавливать мы изучим позже.
При первом запуске RStudio вы не увидите это окно. Для того, чтобы оно появилось, нужно нажать File — New File — R Script .↩
В RStudio есть много удобных сочетаний горячих клавиш. Чтобы посмотреть их все, нажмите Help — Keyboard Shortcuts Help .↩
Во время написания кода вам может казаться понятным то, что вы написали, но при возвращении к коду через некоторое время вы уже не будете этого помнить. Старайтесь писать комментарии как можно чаще!↩
Stackoverflow — это сайт с вопросами и ответами. Эдакий аналог Quora, The Question, ну или Ответы Mail.ru в мире программирования.↩
Все, что вы нажмете в этом окошке, никак не повлияет на исходную переменную. Так что можете смело использовать эти функции для исследования содержимого датафрейма.↩
Как пользоваться R-Studio?
Основная функция программы — восстановить потерянные данные.
Чтобы найти удаленный файл, вы можете сначала просмотреть содержимое раздела диска, на котором он находился ранее. Для этого нажмите на название раздела диска и нажмите на кнопку в верхней панели «Показать содержимое диска».

Программа R-Studio начинает обработку информации с диска.

После обработки мы можем наблюдать файлы и папки, найденные в этом разделе диска, в том числе удаленные. Удаленные файлы и папки помечаются красным крестиком.
Чтобы восстановить нужную папку или файл, отметьте их галочкой и нажмите кнопку «Восстановить отмеченные» на панели инструментов».

Далее открывается окно, в котором нам нужно указать параметры восстановления. Самое главное — указать каталог, в который будет восстанавливаться папка или файл. После выбора каталога для сохранения и выполнения других настроек, если необходимо, нажмите кнопку «Да».

Впоследствии файл восстанавливается в каталог, указанный выше.
Следует отметить, что в демонстрационной версии программы вы можете восстанавливать только один файл за раз и его размер не превышает 256 КБ. Если пользователь приобрел лицензию, становится доступно пакетное восстановление файлов и папок неограниченного размера.
Главные особенности R-Studio
В реаниматоре R-Studio используется уникальная технология IntelligentScan. Многочисленные настройки помогают настроить процесс восстановления, ускорить поиск файлов и в то же время приблизить вероятность нахождения удаленной информации. Этому также способствует мастер восстановления и полезная русская справка.
Простое оформление и наглядность процесса восстановления
Традиционное оформление в стиле исследователя. Программа будет понятна в навигации для начинающих пользователей и пригодится при выполнении файловых операций с восстановленными файлами.
Довольно часто разработчики приложений восстановления делают процесс непрозрачным. В результате пользователь не может контролировать восстановление, не все очевидно от начала до конца.
R-Studio, с другой стороны, показывает обнаруженные файлы, показывает тип файла, тип файловой системы и другую информацию, которая каким-то образом поможет пользователю понять это.
Удаленный поиск информации о жестком диске. Вы можете подключиться к ПК удаленно и помочь с проблемой. Кроме того, вы можете восстанавливать файлы в другой операционной системе, находясь в Windows. Главное — получить доступ к машине пользователя, которому нужна помощь.
Отличительные черты
Восстановление файлов с помощью r-studio также несложно, потому что, в отличие от многих зарубежных программ, она переведена на русский язык, имеет привычный интерфейс и одинакова для всех распространенных операционных систем. Так что даже если вы не похожи на обычного пользователя, то есть вместо Windows у вас Linux или Mac — не пугайтесь, программа rstudio адаптирована для хорошо известных операционных систем.
По секрету, поначалу программой r-studio могли пользоваться только опытные пользователи, которые уже не в первый раз удаляют, а потом восстанавливают файлы заново. Потом были немного изменены настройки и инструкция по эксплуатации и получилось понятное приложение. Если вы «чайник» и до установки знали только, как удалять файлы, то программа rstudio поможет вам научиться восстанавливать потерянные данные.
Удобное сохранение восстановленной информации
Во-первых, в R-Studio вы можете создать специальный список файлов, восстанавливаемых для экспорта. Кроме того, пользователь может сохранить файл проекта, чтобы работать с файлами позже. Нет необходимости перезапускать процесс восстановления информации на диск или другой источник файлового хранилища. Все настройки, отметки будут сохранены в файле экспорта.
Широкий список поддерживаемых файловых систем
Даже если тип файловой системы не установлен (так называемый «исходный формат»), R-Studio может обнаружить удаленный раздел или файловую таблицу, исправить исходное форматирование и восстановить информацию.
Восстановление сжатых и зашифрованных дисков, альтернативные потоки NTFS.
Поддержка разных типов файлов и расширений
Если данные были удалены в массиве RAID, R-Studio может восстановить часть потерянных данных. Поддерживаемые массивы RAID6, RAID5 и RAID4. В настройках пользователь может вручную указать размер блока, сохранить конфигурацию динамического диска для этого ПК и так далее. Также доступна проверка целостности RAID, правильность блоков, чтение параметров RAID-массива.
Создание образа диска для последующего восстановления
Как профессиональный продукт, R-Studio будет интересна специалистам по восстановлению, использующим модуль клонирования жесткого диска. Образ диска (клон) полезен при работе с проблемными жесткими дисками, при наличии битых секторов, ошибок чтения, в результате которых получение информации в обычном режиме заметно замедляется или полностью невозможно.
Вы можете создать образ диска, сохранить его на диск, а затем тщательно изучить его, восстановить информацию на нем, как на обычном носителе. Кроме того, это могут быть:
В любом случае легко смонтировать образ на локальном или удаленном компьютере, а затем сканировать и извлекать файлы.
Восстановление по сигнатурам
Если при просмотре диска вы не нашли нужную папку или файл, значит, их структура уже нарушена, из-за записи в удаленные элементы новых файлов или произошло экстренное нарушение структуры самого диска. В этом случае простой просмотр содержимого диска не поможет, и вам нужно будет выполнить полное сканирование на наличие подписей. Для этого выбираем нужный нам раздел диска и нажимаем кнопку «Сканировать».

Далее открывается окно, в котором вы можете установить параметры проверки. Продвинутые пользователи могут вносить в них изменения, но если вы не очень хорошо разбираетесь в этих вещах, лучше здесь ничего не трогать, так как разработчики по умолчанию выставили оптимальные настройки для большинства случаев. Просто нажмите кнопку «Сканировать».

Начнется процесс сканирования. Это занимает относительно много времени, поэтому придется подождать.

После завершения сканирования перейдите в раздел «Найдено по подписям».

Затем нажмите на надпись в правом окне программы R-Studio.

После непродолжительной обработки данных открывается список найденных файлов. Они сгруппированы в отдельные папки по типу содержимого (архивы, мультимедиа, графика и т.д.).

В файлах, найденных по сигнатурам, структура их расположения на жестком диске не сохраняется, так как в предыдущем способе восстановления имена и временные метки также теряются. Следовательно, чтобы найти нужный нам элемент, нам придется исследовать содержимое всех файлов с одинаковым расширением, пока мы не найдем нужный. Для этого просто щелкните файл правой кнопкой мыши, как в обычном файловом менеджере. Затем откроется программа просмотра файлов этого типа, установленная в вашей системе по умолчанию.
Восстановить данные, как и в прошлый раз: отметьте нужный файл или папку галочкой и нажмите кнопку «Восстановить помеченные» на панели инструментов.

Редактирование дисковых данных
О том, что программа R-Studio — это не просто приложение для восстановления данных, а многофункциональная комбинация для работы с дисками, свидетельствует тот факт, что в ней есть инструмент для редактирования информации о диске — шестнадцатеричный редактор. Его можно использовать для изменения свойств файлов NTFS.
Для этого щелкните левой кнопкой мыши файл, который хотите отредактировать, и выберите в контекстном меню пункт «Viewer-Editor». Или вы можете просто набрать комбинацию клавиш Ctrl + E.

Далее открывается редактор. Но следует отметить, что работать с ним могут только очень хорошо обученные профессионалы и пользователи. Обычный пользователь может серьезно повредить файл, используя этот инструмент неумелым образом.
R studio что это за программа


Часто наши клиенты спрашивают нас: в чем преимущество R-Studio перед другими программами для восстановления данных? Почему R-Studio считается «рентабельной» утилитой, в то время как стоимость некоторых других подобных продуктов ниже? Является R-Studio более эффективной утилитой? Почему R-Studio кажется более сложной программой по сравнению с другими?
Начнем с последнего вопроса. R-Studio первоначально разрабатывалась для опытных пользователей, экспертов в области восстановления данных, системных администраторов, специалистов в области IT. Большинству пользователей все возможности программы не потребуются, а определенная функциональность R-Studio предназначена исключительно для специалистов в области судебной компьютерно-технической экспертизы.
Для ряда начинающих пользователей столь большое число возможностей программы может вызвать некоторую сложность в понимании ее интерфейса и функциональности. Поэтому мы максимально оптимизировали ее интерфейс и составили подробное Руководство Пользователя (Справку) R-Studio. Однако тем, у кого все же остались недопонимания после его прочтения, мы советуем загрузить и попробывать программу R-Undelete. R-Undelete является такой же высокопрофессиональной утилитой восстановления данных, как и R-Studio, при этом ее интерфейс ориентирован главным образом на начинающих пользователей. R-Undelete это наилучшее решение для пользователей, которым необходима программа, содержащая все основные и некоторые дополнительные операции по восстановлению данных. Ниже в таблице приведены основные возможности R-Studio и R-Undelete.

Кликните по картинке для увеличения
Главная панель R-Studio

Кликните по картинке для увеличения
Главная панель R-Undelete
| Возможности | R-Undelete | R-Studio |
| Мастер интерфейса | Да | Нет |
| Подробный и гибкий поиск восстанавливаемых файлов | Да | Да |
| Поддержка массового восстановления файлов | Да | Да |
| Сортировка файлов по их типам и временным отметкам | Да | Да |
| Просмотр содержания файла для оценки шансов восстановления | Да | Да |
| Восстановление файлов с удаленных/переформатированных/поврежденных логических дисков | Да | Да |
| Распознавание удаленных сложных конфигураций разделов | Нет | Да |
| Поиск файлов известных типов (при сканировании) | Да | Да |
| Создание и обработка файла образа диска | Да | Да |
| Автоматическое обновление программы | Да | Да |
| Текстовый/шестнадцатиричный редактор | Нет | Да |
| Поддержка файловых систем используемых на компьютерах с ОС отличными от Windows | Нет | Да |
| Поиск файлов известных типов (при сканировании) заданных пользователем | Нет | Да |
| Поддержка RAID’ов и менеджеров логических дисков | Только видимых системой | Да |
| Восстановление данных по сети | Нет | Да |
| Emergency CD | Нет | Да |
Внимание! В течение одного года с момента приобретения возможна модернизация R-Undelete на R-Studio по изначальной разнице в стоимости. Поэтому для самых простых и распространенных случаев утраты данных нет необходимости сразу же покупать R-Studio.
Почему стоимость R-Studio выше стоимости ряда других подобных продуктов?
На самом деле это не так. R-Studio стоит меньше большинства из них! Далее мы рассмотрим возможности R-Studio и среднерыночную стоимостью подобного рода утилиты:

1. Полнофункциональная утилита для восстановления данных должна решать любую задачу, с которой сталкивается профессиональный специалист в области IT. Это восстановление данных всеми известными методами, также сканирование и поиск файлов известных типов; также R-Studio поддерживает новые файловые системы exFAT и ReFS, созданные Microsoft, и APFS, созданную Apple.
Примерная рыночная стоимость подобного рода продукта составляет 60 долларов США.
Кликните по картинке для увеличения
Помеченные для восстановления файлы в R-Studio

Кликните по картинке для увеличения
Просмотр файла в R-Studio


2. Модуль реконструкции RAID.
(R-Studio on-line Справка — Наборы Томов и RAID)
В отличие от большинства компаний по восстановлению данных мы не предлагаем базовых принципов реконструкции RAID. В R-Studio имеются широкие и многосторонние возможности для реконструкции дисковых массивов — такие же, как и в большинстве программ, специально предназначенных для этих целей:
Кликните по картинке для увеличения
Реконструкция RAID5 в R-Studio
Среди прочих возможностей модуля реконструкции RAID:
Примерная стоимость подобного продукта в других компаниях составляет 80 долларов США.

3. Универсальный Шестнадцатиричный Просмоторщик/Редактор
(R-Studio on-line Справка — Текстовый/Шестнадцатиричный Редактор)
Помимо стандартной функциональности, которая присуща большинству общеизвестных утилит для редактирования диска, мы предлагаем пользователю дополнительные возможности:
Кликните по картинке для увеличения
Редактирования жесткого диска в Шестнадцатиричном Редакторе R-Studio
В дополнение ко всем стандартным возможностям таких программ, наша дополнительно включает следующие:
Примерная стоимость такой программы составляет 70 долларов США.

4. Модуль копирования диска.
((R-Studio on-line Справка — Advanced Data Recovery — Object Copy))
Возможно побайтное копирование любого объекта панели Drives (Диски), а также копирование разделов и жестких дисков с изменением их размеров и смещений.
Кликните по картинке для увеличения
Модуль копирования диска
Примерная стоимость такой программы составляет 30 долларов США.
Теперь подведем итог. Если приобретать все рассмотренные продукты отдельно, то общая их стоимость составит: 60.00$ + 80.00$ + 70.00$ = 210.00$.
Обладающая всеми рассмотренными возможностями локальная версия R-Studio стоит 79.99 долларов США; а каждый пакет R-Studio Network, включающий пять дополнительных лицензий R-Studio Agent/Agent Emergency для удаленных компьютеров, стоит всего 179.99 долларов США.
Мы предлагаем пользователю все рассмотренные выше возможности в одной программе R-Studio. Вы можете воспользоваться Шестнадцатиричным Просмоторщиком/Редактором для просмотра содержимого жестких дисков неисправного RAID и найти его параметры, создать образ жестких дисков и тем самым избежать дальнейшего возможного повреждения данных, загрузить созданные образы, создать виртуальный RAID, отсканировать RAID и найти файлы известных типов, просмотреть найденные файлы для оценки шансов восстановления, найти и пометить все файлы, которые необходимо восстановить, задать параметры восстановления и наконец начать сам процесс восстановления данных. Все эти действия можно выполнить сразу при помощи одной программы, в том числе и на удаленном компьютере по сети.
При этом для R-Studio не требуется большого количества системных ресурсов. Минимальные системные требования для программы это 256 МБ оперативной памяти и Win200. В то же время R-Studio поддерживает самые последние аппаратные компоненты компьютера и операционные системы Microsoft.
Внимание: R-Studio действительно надежная и эффективная утилита для восстановления данных, однако она не способна «творить чудеса». С ее помощью можно успешно восстановить данные, которые присутствуют на жестких дисках. Однако если данные были перезаписаны, то ничего сделать нельзя. Ни одна утилита по восстановлению данных, никакой квалифицированный специалист в этом случае не сможет восстановить утраченную информацию. Другой случай это восстановление данных с поврежденного жесткого диска. При появлении малейших признаков повреждения следует создать образ такого диска при помощи R-Studio. Создать и сохранить образ на другой носитель можно даже в демонстрационном режиме программы. Восстановление данных с образов, а не с оригинальных дисков, позволит вам избежать их окончательной утраты. Когда вы приносите неисправный диск в специализированную лабораторию по восстановлению данных, то как правило первое, что делает IT специалист, это создает образ неисправного диска.
Однако если ваш жесткий диск имеет явные повреждения (например, его работа сопровождается нетипичными звуками, щелчками и т.п.), то не пытайтесь использовать R-Studio или КАКУЮ-ЛИБО ДРУГУЮ программу по восстановлению данных. Сразу же выключите компьютер и отсоедините диск. САМОСТОЯТЕЛЬНО НЕ ПРЕДПРИНИМАЙТЕ НИКАКИХ ДЕЙСТВИЙ С ДИСКОМ! (особенно если на нем имеется важная информация). Отнесите диск специалистам лаборатории по восстановлению данных. У них есть специальное оборудование и, что самое важное, необходимый уровень знаний для работы с такими дисками. В этом случае вам не поможет ни R-Studio, ни какая-либо другая программа по восстановлению данных. Более того, какие-либо дальнейшие действия с таким диском наверняка вызовут еще большие повреждения данных. К сожалению, в большинстве случаев фатальные.
R-Studio для Windows

R-Studio — набор утилит для восстановления данных и файлов с жестких дисков, устройств флеш-памяти и других устройств таких, как CD, DVD, дискет, USB дисков, ZIP дисков. Позволяет востановить файлы удаленные вне Корзины или когда Корзина была очищена, в результате вирусной атакой или сбоя питания компьютера. Работает как на локальных, так и на удаленных компьютерах по сети.
Recuva — мощная утилита для восстановления данных, которые были удалены на жестких дисках и.
Macrium Reflect — шустрая программа для работы с образами жесткого диска и резервного.
R-Studio — мощное приложение, позволяющее восстановить поврежденную или удаленную информацию.
R.saver – бесплатная программа для восстановления данных с различных версий файловых систем.
HDD Regenerator — приложение для восстановления битых секторов жестких дисков, которое умеет.
Puran File Recovery — утилита для восстановления удаленных или поврежденных файлов. Программа.
Отзывы о программе R-Studio
треш про R-Studio 9.1 build 191060 [23-11-2022]
Добрый Nitai про R-Studio 9.0 build 190296 [22-06-2022]
Большущий респект и благодарность создателям данной проги! После случайного форматирования внешнего жесткого диска, ПОЛНОСТЬЮ ВОССТАНОВИЛ ВСЕ ДАННЫЕ! ВСЕ ПАПКИ, ВСЮ СТРУКТУРУ ДИСКА! ДЕЛАЛ ПО ВИДЕО-ИНСТРУКЦИИ ЗДЕСЬ НА САЙТЕ. ДИСК НА 500GB 2.5″ ВРЕМЕНИ УШЛО больше 12 часов, но меньше суток)
3 | 7 | Ответить
Ирина про R-Studio 8.17 build 180955 [23-01-2022]
Здравствуйте, я могу с помощью этой программы восстановить видео ? Дело в том, что на внешнем жестком диске я просматривала видео и решила немного его подрезать, после чего нажала ЗАМЕНИТЬ, оказывается осталось отрезанным именно то что мне нужно. Получается я не удалила,а именно заменила((( Прошу прислать ответ по возможности на посту ut23yz@yandex.ru
3 | 17 | Ответить
Эдуард ЧАЙНИК про R-Studio 8.12 build 175573 [24-11-2019]
ДАЖЕ У МЕНЯ ПОЛУЧИЛОСь вОсстановить документ XLS на флэшке. Спасибо огромное!!
10 | 10 | Ответить
карина в ответ Эдуард ЧАЙНИК про R-Studio 8.12 build 175721 [17-01-2020]
похоже я что то не то скачала adguard скачался это ж не восстановит файлы
9 | 11 | Ответить
Leonid в ответ карина про R-Studio 8.16 build 180499 [23-09-2021]
Нет это антивирус который везде вталкивают.
4 | | Ответить
Ольга про R-Studio 8.7 build 170955 [09-07-2018]
Спасибо ОГРОМНОЕ. Уже мысленно попрощалась со всеми файлами с флешки. Но эта программа спасла меня. Еще раз спасибо.
7 | 25 | Ответить
оля в ответ Ольга про R-Studio 8.8 build 172035 [26-11-2018]
а как восстанавливать видео в этой видео в этой программе?
17 | 74 | Ответить
Екатерина в ответ Ольга про R-Studio 8.9 build 173593 [12-01-2019]
Скажите пожалуйста, вы покупали ее? В демо версии не сохраняет данные
50 | 162 | Ответить