Программы типа r studio
На написание данной статьи меня сподвиг следующий топик: В поисках идеального поста, или загадки хабра. Дело в том, что после ознакомления с языком R я крайне искоса смотрю на любые попытки, что-то посчитать в экселе. Но надо признать, что и с R я познакомился лишь неделю назад.
Цель: Собрать средствами языка R данные с любимого HabraHabr'а и провести, собственно то, для чего и был создан язык R, а именно: статистический анализ.
- Как можно использовать R для извлечения данных из Web ресурсов
- Как преобразовывать данные для последующего анализа
- Какие ресурсы крайне рекомендуются к прочтению всем желающим познакомиться с R поближе
Ожидается, что читатель достаточно самостоятелен, чтобы самому ознакомиться с основными конструкциями языка. Для этого как никак лучше подойдут ссылки в конце статьи.
Подготовка
- Rcurl — для работы с сетью. Все кто работал с CURL сразу поймет все открывающиеся возможности.
- XML — пакет для работы с DOM деревом XML документа. Нам понадобится функционал нахождения элементов по xpath
Получаем данные
Чтобы получить DOM объект документа полученного из интернета достаточно выполнить следующие строчки:
Здесь мы использовали поиск элементов и атрибутов с помощью xpath.
Далее крайне рекомендуется сформировать из полученных данных data.frame — это аналог таблиц базы данных. Можно будет делать запросы разного уровня сложности. Иногда диву даешься, как элегантно можно сделать в R ту или иную вещь.
Так же полезно добавить дополнительные поля, которые вычисляются из уже полученных:
На этом, можно сказать, что все данные получены и преобразованы к готовому для анализа формату. Код выше я оформил в виде функции готовой к использованию. В конце статьи вы сможете найти ссылку на исходник.
Но внимательный читатель уже заметил, что таким образом, мы получили данные лишь для одной страницы, чтобы получить для целого ряда. Чтобы получить данные для целого списка страниц была написана следующая функция:
Здесь мы используем системную функцию Sys.sleep, чтобы не устроить случайно хабраэффект самом хабру:)
Данную функцию предлагается использовать следующим образом:
А считываем следующим образом:
Ура! Мы научились получать статистические данные с хабра и сохранять их локально для следующего анализа!
Анализ данных
Этот раздел я оставлю недосказанным. Предлагаю читателю самому поиграться с данными и получить свои долеко идущие выводы. К примеру, попробуйте проанализировать зависимость настроения плюсующих и минусующих в зависимости от дня недели. Приведу лишь 2 интересных вывода, которые я сделал.
Пользователи хабра значительно охотнее плюсуют, чем минусуют.
Действительно есть несколько классов постов
Это утверждение в упомянутом посте использовалось как данность, но я хотел убедиться в этом в действительности. Для этого достаточно посчитать среднюю долю плюсов к общему количеству действий, тоже самое для минусов и разделить второе на первое. Если бы все было однородно, то множество локальных пиков на гистограмме мы не должны наблюдать, однако они там есть.
Как вы можете заметить, есть выраженные пики в районе 0.1, 0.2 и 0.25. Предлагаю читателю самому найти и «назвать» эти классы.
Хочу заметить, что R богата алгоритмами для кластеризации данных, для аппроксимации, для проверки гипотез и т.п.
Полезные ресурсы
Если вы действительно хотите погрузиться в мир R, то рекомендую следующие ссылки. Пожалуйста, поделитесь в комментариях вашими интересными блогами и сайтами на тему R. Есть кто-нибудь пишущий об R на русском?
Считаю, что такие языки как R, haskell, lisp, javascript, python — должен знать каждый уважающий себя программист: если не для работы, то как минимум для расширения кругозора!
Программа работает практически на всех версиях Windows: от 2000 до Windows 10; поддерживается любая разрядность (32 и 64 бит). Дополнительная русификация не требуется, т.к. русский язык уже вшит в официальную версию программы.
Бесплатно программа R-Studio распространяется лишь в демоверсии: пользователь может восстановить файлы, размер которых не превышает 64 Кб. Однако демо-версия имеет практическую пользу: перед покупкой регистрационного ключа ($79,99) пользователь может просканировать файлы на нужном накопителе и проверить, доступны ли они для восстановления.
Как пользоваться R-Studio?
После установки ПО следует запустить его и проигнорировать всплывающее окно, нажав на кнопку «Демо». Теперь пользователю доступна рабочая область: на ней отображены все подключенные накопители (HDD, SSD, USB и прочее), разделы, а также основная информация о них.
Для начала работы нужно выбрать ту USB-флешку или жесткий диск, в котором хранился потерянный файл, а после нажать на кнопку «Сканировать». После этого R-Studio начнет искать следы удаленных файлов и по завершению проверки отобразит все файлы по сигнатурам (документы, изображения, аудио и т.п.).
Следующий шаг — восстановление. Можно восстанавливать файлы и каталоги отдельно, а можно отметить 1000 найденных объектов и восстановить их в новую папку (желательно использовать иной раздел жесткого диска).
К сожалению, бесплатная версия сильно ограничивает пользователя, но в программе реализована функция для предпросмотра файла: можно включить трек, видео или изображение и понять, нашла ли программа потерянный файл.
Плюсы и минусы программы R-Studio
Плюсов здесь достаточно много:
- простой интерфейс;
- наличие русского языка;
- возможность подключения к удаленному ПК;
- работа с образами (RDR, DSK и прочие);
- огромное количество настроек;
- поддержка всех файловых систем (FAT32, UFS32, NTFS и множество других);
- возможность создания виртуальных томов и т.п.
Минус, пожалуй, только один: возможность использования бесплатной версии только для поиска удаленных файлов, а не для их восстановления.
R-Studio — это инструмент высокого качества, способный восстановить данные пользователя даже в крайне сложных условиях.
R-Studio - это семейство мощных и экономичных программ восстановления данных. Благодаря новым уникальным технологиям восстановления данных это наиболее комплексное решение для восстановления данных из файлов FAT12 / 16/32 / exFAT, NTFS, NTFS5 (созданных или обновленных в Windows 2000 / XP / 2003 / Vista / 2008 / Win7) , HFS / HFS + (Macintosh), варианты Little и Big Endian для UFS1 / UFS2 (FreeBSD / OpenBSD / NetBSD / Solaris) и Ext2 / Ext3 / Ext4 FS (Linux).
R-Studio работает на локальных и сетевых дисках, даже если такие разделы отформатированы, повреждены или удалены. Гибкие настройки параметров дают вам полный контроль над восстановлением данных.
Альтернативы для R-Studio
562
Случайно удалил важный файл? Потерял файлы после сбоя компьютера?.
Recuva (произносится «восстановить») - бесплатная утилита Windows для восстановления файлов, которые были случайно удалены с вашего компьютера. Это файлы, очищенные из корзины, а также изображения и другие файлы, которые были удалены по ошибке пользователя с карт памяти цифровых камер или MP3-плееров. Она может восстановить даже файлы, которые были удалены с вашего iPod или из-за ошибок, сбоев и вирусов!
342
Glary Utilities предлагает множество мощных и простых в использовании системных инструментов и утилит для вашего ПК.
- Условно бесплатная
- Windows
- Android
Glary Utilities предлагает множество мощных и простых в использовании системных инструментов и утилит для исправления, ускорения, обслуживания и защиты вашего ПК.
276
TestDisk может конвертировать динамические диски в базовые диски.
TestDisk - это мощное бесплатное программное обеспечение для восстановления данных.
186
Disk Drill легко восстанавливает удаленные файлы и защищает ваши файлы от случайного удаления.
- Условно бесплатная
- Windows
- Mac OS
Disk Drill - это программа для восстановления данных, которая легко защищает ваши файлы от случайного удаления с помощью Recovery Vault и восстанавливает потерянные данные с дисков.
124
PhotoRec, сопутствующая программа TestDisk.
PhotoRec, сопутствующая программа TestDisk, представляет собой программное обеспечение для восстановления файловых данных, предназначенное для восстановления потерянных файлов, включая видео, документы и архивы с жестких дисков и CDRom, а также потерянных изображений (Photo Recovery) из памяти цифровой камеры. PhotoRec игнорирует файловую систему и работает с исходными данными, поэтому он все равно будет работать, даже если ваша файловая система mediaas была серьезно повреждена или переформатирована.
37
GetDataBack для дисков и разделов FAT или NTFS восстановит ваши данные.
GetDataBack для дисков и разделов FAT или NTFS восстановит ваши данные, если таблица разделов жесткого диска, загрузочная запись, FAT / MFT или корневой каталог потеряны или повреждены, если данные были потеряны из-за вирусной атаки, диск был отформатирован, был выполнен fdisk, сбой питания вызвал сбой системы, файлы были потеряны из-за сбоя программного обеспечения, файлы были случайно удалены. GetDataBack может даже восстановить ваши данные, когда диск больше не распознается Windows. Его также можно использовать, даже если отсутствует вся информация о каталоге, а не только корневой каталог.
27
DiskWarrior - это самая безопасная, технологичная и мощная утилита для устранения повреждения каталогов.
DiskWarrior - это самая безопасная, технологически продвинутая, самая мощная утилита, которая устраняет повреждения каталогов и восстанавливает ваши файлы, папки и документы. DiskWarrior настолько продвинут, что может даже восстановить ваши данные с неисправного жесткого диска. И вся эта сила скрыта за одной кнопкой.
8
DM Disk Editor and Data Recovery (DMDE) - это дисковый редактор, который может помочь вам понять NTFS.
DM Disk Editor and Data Recovery (DMDE) - это дисковый редактор, который может помочь вам понять NTFS. Он способен просматривать ваш сектор жесткого диска на уровне MFT, обнаруживать атрибуты mft и редактировать байты на вашем жестком диске.
Что в этом списке?
В списке находится программы которые можно использовать для замены R-Studio.
Это аналоги похожие по функционалу на R-Studio, которые заменяют программу частично или полностью. Этот список содержит 8 замен.
С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone
В предыдущей статье мы протестировали пятерку бесплатных программ для восстановления данных. В комментариях пользователи Хабра заметили, что мы не уделили внимание программам, которые в свое время, возможно, эффективно спасали данные, и предложили еще шесть восемь других программ для восстановления данных. Вот они:
Внимание! Много скриншотов.
UPD Добавлены тесты еще двух утилит.
Коротко о тестах
Как и в прошлый раз мы записали на накопители данные. Но в этот раз, по просьбе icoz, мы добавили к картинкам и фотографиям различные типы файлов, среди которых: doc, pdf, rar и др.
Общее количество файлов — 3272.
Среди них 2956 картинки и 316 документов разных типов.
Тест первый. Сбой файловой системы
Мы опять перетерли часть файловой системы, все до таблиц FAT, тем самым имитируя сбой файловой системы. При таких сбоях обычно доступ к данным потерян, и появляется окно с просьбой отформатировать диск.
1. R.Saver
В программе R.Saver нет мастера, помогающего выбрать все необходимые параметры для восстановления данных, но есть русскоязычное меню с понятными каждому пунктами.
Запускаем поиск потерянных данных, и через некоторое время появляется окно, в котором необходимо выбрать одну из файловых систем
Начинается реконструкция файловой системы:
И через небольшой промежуток времени получаем результат:
Тест пройден. Результат восстановления — 99% (по-прежнему не люблю абсолютные значения)
2. Handy Recovery
В этой программе есть мастер, который помогает пользователю восстановить данные. На первом шаге необходимо выбрать устройство, с которого нужно восстановить данные:
Выбрав нужное, мы получаем ошибку.
Все очень быстро закончилось. Тест провален. Результат восстановления — 0.
3. GetDataBack
Сразу бросается в глаза «современный» интерфейс программы:
Выбираем нужный накопитель и файловую систему:
И получаем результат:
Все хорошо, если бы не одно НО. Сохранить данные в бесплатной версии не удастся. Но тем не менее тест пройден. Результат восстановления — 99%.
4. PhotoRec/TestDisk
Полная противоположность предыдущей программе, если сравнивать интерфейс. Здесь он вот такой:
Мнение автора. В середине 2015 года «неподготовленного» человека может испугать/взбесить/ввести в ступор/рассмешить такой интерфейс программы. Один мой знакомый «гуманитарий» перепутал такое окошко с «Синим экраном смерти» и приготовился к самому страшному.
Но тем не менее, продолжаем испытывать программу. Выбрали нужный раздел:
Затем нужно выбрать тип файловой системы, и тут может случиться первый ступор у людей, далеких от «всего этого». Благо, варианта всего два — можно перебрать:
Затем вторая трудность — выбрать каталог, куда будут сохранены восстановленные данные, и, наконец, запуск процесса восстановления:
Программа работает дольше, чем другие:
Но результат работы сразу доступен для дальнейшего использования:
Тест пройден. Результат восстановления — 99%. Но есть одно НО. Структура каталогов будет потеряна, и результат восстановления — несколько наборов файлов. В этом тесте это, на мой взгляд, небольшой минус.
5. RecoveRx
Сразу стоит заметить, что все программы, кроме этой, тестируются на накопителях Silicon Power Ultima U03. Утилита RecoveRx имеет отношение к компании Transcend, и логично будет испытать ее на накопителе Transcend. Испытуемым стал накопитель Transcend JetFlash 370. На этот накопитель мы записали немного другой набор данных: только фотографии.
Все остальные условия остаются без изменения. Мы перетерли файловую систему до таблиц FAT и попытались восстановить данные. Запустили программу (на компьютере должен быть установлен Framework 4.0):
Выбрали наш накопитель и получили ошибку:
Различные режимы совместимости и права администратора не помогли. Тест провален. Результат восстановления — 0.
6. DMDE
В программе довольно простой и понятный интерфейс. Выбираем нужный логический диск:
Начинается процесс восстановления, и почти сразу появляется окно:
После выбора первого варианта через несколько секунд появляется результат:
Тест пройден. Результат восстановления 99%.
Тест второй. Быстрое форматирование
Как и в прошлый раз после сбоя файловой системы мы отформатировали средствами операционной системы все накопители с параметрами по умолчанию. Посмотрим, все ли справятся с этим тестом.
1. R.Saver
В R.Saver есть «понятный» всем пункт меню для таких случаев:
Затем запускается привычный поиск файловой системы
Выбираем одну из них:
Ждем сравнительно недолго:
И получаем в конце результат:
Структуры каталогов нет. Сохраняем результат и видим, что не все файлы восстановились после форматирования. Но, тем не менее, тест пройден. Результат восстановления — 88%.
2. Handy Recovery
После запуска программы в мастере выбираем нужный накопитель:
И здесь нас уже встречает окно-предупреждение об ограниченности функционала демо-версии:
Пропускаем этот шаг и на следующем этапе выбираем все возможные типы файлов
После непродолжительного сканирования получаем результат:
Так как полноценно открыть файлы мы не смогли, то оценили результат по превью-изображениям внизу. Данных восстановлено очень мало, порядка двух процентов. Тест провален. Результат восстановления — 2%.
3. GetDataBack
Запускаем программу и выбираем наш накопитель
На автомате выбираем единственную файловую систему;
И понимаем, что это новая пустая файловая система:
Немного подумав, жмем кнопку в нижнем левом углу, и процесс восстановления начинается:
После завершения сканирования появляется еще одна файловая система:
Выбираем ее и видим неплохой результат. Но есть одно НО. В бесплатной версии программы мы не можем сохранить данные.
Тест пройден. Результат восстановления — 99%.
4. PhotoRec/TestDisk
В этой программе все очень просто. Один порядок действий на все возможные проблемы. Выбираем накопитель.
Выбираем раздел. Здесь нужно выбрать верхний:
Выбираем папку, куда будут сохраняться восстановленные данные, и запускаем сканирование:
И получаем результат:
Как и в прошлый раз, структура каталогов потеряна, но файлы все целые. Отличный результат. Тест пройден. Результат восстановления — 99%.
5. RecoveRx
Запускаем программу, выбираем нужное устройство и настораживаемся. Уж какие-то невероятные размеры разделов.
Выбираем любой из них, затем выбираем типы файлов. Напомню, что на этом накопителе только картинки и фотографии.
И потом сразу же получаем «результат»:
Пробовали другие разделы, даже другие накопители после быстрого форматирования. Результат одинаковый.
Тест провален. Результат восстановления — 0%.
6. DMDE
Запускаем программу, выбираем наш логический накопитель:
Выбираем наш раздел. Он единственный:
Понятное дело, он будет пустым, и софт предлагает просканировать полностью том:
Запускается длительный процесс сканирования:
На первый взгляд, было найдено много фотографий, но если присмотреться в окно HEX-редактора, то видно, что это не jpg-фотография, а какой-то мусор. Сохранив данные и оценив результат, видим, что восстановленных данных очень мало. Тест провален. Результат восстановления — 1%.
Итоги
Итоговая таблица результатов выглядит так:
Есть лидеры и есть аутсайдеры. У каждого из лидеров есть свои преимущества и недостатки.
Понятно, что бесплатным версиям программ разработчики и менеджеры уделяют значительно меньше времени, чем платным версиям своих продуктов. У нас тоже есть несколько бесплатных программ, которые помогают пользователям в повседневной жизни. Для нас они своего рода «песочница», через которую проходят многие начинающие разработчики, прежде чем попасть в серьезный проект. Возможно совсем скоро вы увидите новые версии наших бесплатных утилит.
На этом всё. И помните, Lost forever still can be found…
P.S. В комментариях к предыдущей статье пользователи задали несколько интересных вопросов. На некоторые из них я попробую ответить. Был вопрос про то, почему в качестве примера данных были взяты фотографии и картинки. Это было сделано не случайно, и решение основывалось на личном опыте «помощи» нашему отделу восстановления. Дело в том, что порядка 60-70% задач, с которыми обращаются люди — это фотографии и видео. Как правило, восстановление документов, если и интересует людей, то работа по восстановлению должна быть выполнена в короткий срок. Это не всегда получается сделать по различным причинам. Люди понимают, что им быстрее и дешевле донабрать недостающие данные в предыдущей версии документа. С фотографиями же совсем другая история. Как правило, на них изображены торжественные моменты, которые случаются один раз (свадьбы, дни рождения, различные церемонии и т.д.), и никакими другими способами получить такой же набор данных, кроме как восстановить их, не представляется возможным.
Также был вопрос, почему мы для тестирования каждой программы используем отдельный накопитель. Здесь все очень просто и нет никакого тайного умысла. Эти накопители покупаются специально для проведения обучающих семинаров, и нам нужно смоделировать на них определенные проблемы. Например, записать много картинок определенной тематики (машины), затем отформатировать и записать сверху картинки другой тематики, например, космос. Затем сэмулировать аппаратную проблему и дать задание восстановить данные из первого пакета файлов (машины). Используя разные накопители, мы делаем работу, которую должны, и попутно готовим материал для статей на Хабре.
По просьбе пользователей протестируем еще пару программ. На накопителе хранятся картинки и фотографии.
Общее число файлов — 2956
7. Zero Assumption Recovery 9.2.
Тест первый
Выбираем верхний пункт меню:
Затем выбираем нужное устройство:
И запускаем сканирование:
Сканирование будет длиться очень долго:
В конце получаем результат — 2777 файла. Весьма неплохо. Но структуры каталогов нет.
Тест пройден. Результат восстановления — 94%.
Тест второй
Как и в прошлый раз запускаем сканирование и ждем колоссальное количество времени
После еще одного двухчасового ожидания получаем тот же результат.
Тест пройден. Результат восстановления — 94%.
8. Active@ File Recovery 14
Тест первый
Запускаем утилиту и выбираем нужное устройство и запускаем сканирование
Новогодним подарком в этом году стали для меня новая команда и проект на языке R, о котором в тот момент я знал немного. Поначалу было трудно и не понятно, но время шло, картинка прояснялась. С чем-то удалось разобраться, что-то пришлось принять как есть. И вот, спустя два с половиной месяца работы на R, я решил поделиться опытом и рассказать о своих первых шагах в этом проекте. Я не буду описывать все свои душевные муки и эмоции, которые переполняли меня в процессе освоения этого очень интересного языка, а сосредоточусь на технической стороне вопроса. Цель моей статьи рассказать о том, как отлаживать код в RStudio и создавать новый проект на R.
Первое с чем пришлось мне столкнуться – это отладка приложения. В RStudio есть возможность выделить отдельные участки кода и запустить их. Это очень помогает при работе с R markdown, так как в них, в режиме Debug, нельзя поставить точку останова. А выделить строчки и запустить их можно где угодно.
Причем переменные, которые будут вызываться в этих строчках, он берет из глобального окружения. Получается, что для проверки того, как работает та или иная функция достаточно создать глобальные переменные, построчно запускать код из этих функций и смотреть что происходит. Я работаю в RStudio, где на вкладке Global Environment можно увидеть значения этих переменных.
Создают или меняют значения этих переменных через Console.
Но кроме переменных есть другая проблема. Когда вы выполняете команды построчно, он может не найти код функций, которые вызываются в тех строчках, которые вы выполняете. Для этого их тоже надо загрузить в память. Чтобы это сделать, надо открыть файл с кодом этой функции и нажать на кнопку Source.
Есть в RStudio и классический Debug режим. В нем присутствует возможность ставить Break Points, с возможностью запуска в режиме отладки и функция browser(), встретив которую R прерывает выполнение кода, позволяя отладить приложение. Но в нашем проекте это не получило широкого распространения из-за работы с R markdown.
Следующее с чем я столкнулся в R – это два типа проектов: обычный проект (New Project) и проект типа package (R Package). Когда я пришёл в команду, там был некий микс из этих 2-х. Вроде был Package, но он не собирался и запускали его через RScrtipt. Сейчас, благодаря усилиям моих коллег, у нас работающий R Package.
Обычный проект (New Project) предлагает написать R-скрипт файлы, где один файл подключается к другому через функцию source(). Таким образом, при запуске скрипта получается как бы “один очень большой файл”, в который включены все файлы проекта. Это не всегда удобно и не очень гибко.
В отличие от обычного проекта, проект типа R Package предлагает нам написать библиотеку функций на R, которую потом можно будет установить на любую машину и вызывать эти функции внутри своего R-скрипт файла. Есть правда один нюанс. Функции доступны только из R-скрипта. Поэтому, прежде чем начать с ними работать, нужно будет создать такой скрипт и уже в нем прописать вызовы этих функций. Запускается он в консоли с помощью команды: Rscript. Чтобы это работало нужно в переменных окружения прописать путь к файлу Rscript.exe. На моей машине этот путь выглядит так: C:\Program Files\R\R-4.0.3\bin. При создании своих функций в проекте типа Package, в режиме разработки, следует пользоваться функцией load_all(), которая подтягивает все изменения в память. Если ей не пользоваться, то при всяком изменении кода в проекте, для того чтобы эти изменения вступили в силу, надо запустить процесс инсталляции, что R делает не быстро.
Теперь о проекте R-Package: В отличие от простого проекта, он содержит некую обязательную структуру и специальные файлы. Это:
- файл DESCRIPTION с описанием пакета,
- папка man для описания функций,
- файл NAMESPACE со списком доступных функций создаваемого пакета,
- папка с названием R, в которой должен лежать ваш код на языке R
- файл .Rbuildignore со списком того, что не входит в пакет при его сборке
- файл .Rhistory, который хранит историю команд в консоли
- .RData хранит содержимое вкладки Environment, точнее данные которые были загружены в память при работе с проектом
При создании проекта типа R Package используют утилиту roxygen2. Она помогает создать документацию для вашего пакета. Идея в том, что вы описываете каждую функцию прямо в коде, а утилита уже сама переносит это описание в папку man, конвертируя в необходимый формат и добавляет информацию о функциях в файл NAMESPACE. Подробнее о roxygen2 тут.
Ещё есть полезные пакеты для настройки проекта, которые используют практически во всех инструкциях по его созданию, как минимум во всех тех, что я нашёл в Интернет:
- devtools – основной пакет, в котором собранно большинство команд для работы с проектом в их упрощенном виде
- usethis – пакет помощник, упрощающий выполнение многих рутинных операций
- testthat — пакет для написания Unit тестов
- covr — пакет для проверки кода на покрытие unit тестами
Для удобства работы, в RStudio уже встроены средства проверки вновь создаваемого проекта (Check Package) и его тестирования (Test Package).
Вроде бы всё, что хотел, рассказал, но лучше один раз увидеть, чем сто раз прочитать. Ниже видео о том, как начать работать с R:
Читайте также: