Первый опыт обработки данных в R 🐯
Вчера написал скрипт на языке R, который повторяет исследование, проведенное мною в 2016 (корреляционная адаптометрия на популяционном уровне на примере регионов РФ по данным за 1995-2015 гг). Появились свежие идеи и мысли, что еще стоит посмотреть /рассчитать / визуализировать. Однако, на самой идее, а также дизайне исследования заострять внимание не буду. Речь сейчас не об этом.
Короче, сказать, что я приятно удивлен - ничего не сказать)
Потраченное мною время на все рассчеты с помощью RStudio (R) - часов 5-6. Три года назад все расчеты (Эксель+Statistica) заняли у меня примерно 35-40 часов. Это при том, что и тогда я уже четко представлял, что хочу получить и как (какими методами стат обработки) мне это реализовать. Таким образом, я примерно в 7 раз быстрее провел обработку таблицы с данными (датафрэйма) фразу "база данных" употреблять не буду, т.к. айтишники ошибочно могут принять ее за реляционную базу данных (SQL, СУБД и т.д.). Возвращаясь обратно к R, хотелось бы отметить, что в 2-3 местах своего кода я, к сожалению, не смог написать оптимальный скрипт со вложенными циклами / функиями - пришлось копипастить) В ближайшем будущем, надеюсь доведу данные места кода до ума. Просто пока еще при возникновении необходимости разработки алгоритма и написания самого кода с вложенными функциями происходит небольшой разрыв шаблона. %) Яжнепрограммист в конце-то-концов) Но, чьерт побьери) 5-7 кратная экономия времени при стат обработке данных - не зря полгода учился. Конечно же понимаю, что совершенству нет предела. И пока что являюсь зеленым чайником в обработке данных с помощью R. И все же хотелось бы поделиться своими наблюдениями касательно этого шикарного языка программирования, "заточенного" под обработку данных/текста.
1) многие среды работы в R являются бесплатными
2) многие встроенные и подгружаемые функции в R написаны не "тру кодерам-прогерами", а датасайентистами (специалисты в области обработки данных)
3) наиболее часто употребимые циклы for, while и проч. "зашиты" в функции семейства apply(apply,sapply,tapply,lapply и т.д.), что существенно доставляет чайнику в программировании)
4) многие функции (в том числе и базовые арифметические!) в R векторизованы (выполняются поэлементно), что также снижает необходимость использования циклов в явном виде. например, необходимо сложить два ряда цифр 1,2,5 и 5,2,1. цикл for в данном случае в R - не нужен, достаточно просто сложить эти два вектора 1,2,5 + 5,2,1
5) однажды написанный код можно использовать бесконечное количество раз при регулярно повторяющихся процедурах расчета (исследования, отчеты, документооборот - да где угодно!)
6) существенно облегчает повторимость вашего исследования, внедрения новой методики обсчета данных другими специалистами, разработчиками и прочими специалистами в ходе обработки данных. допустим вы провели сложно выполнимое (с точки зрения расчетов) исследование. результаты исследования публикуете в высокорейтинговом журнале. дизайн, описание исследования а также прикладываете ко всему прочему - еще и ссылку на скрипт стат обработки. Т.е. тем самым ты не только делаешь доброе дело, предоставив науч сообществу саму методу расчета чего-то, но и подкрепляешь ее кодом, тем самым облегчая ее интерпретируемость (расставили макисмальное количество комментов в коде), повторимость, рецензируемость. Ведь, действительно на стат обработку в экселе, Statistica, SPSS уходит довольно много времени. А так, представьте себе - понравилась какая-то метода, скачал скрипт R. Привел свою таблицу данных в тот же вид - и вперед прощелкал Ctrl+Enter (утрирую) - дело в шляпе)
7) возможность создания пользовательских функций - просто находка для ученого, датасайентиста) - в принципе эти вещи довольно-таки обывательские для программистов. и они просто удивляются - а Вы что раньше делали это вручную???
8) практически безграничные возможности визуализации результатов вашей работы - без комментариев)
Подытоживая, хотелось бы отметить, что не стоит бояться осваивать R, т.к. потратив полгода-год (с нуля - абсолютное отсутствие навыков и понимания основных принципов программирования) в будущем эти навыки сделают Вас еще более незаменимым и востребованным специалистом практически в любой сфере, тем более если Ваша работа связана непосредственно с постоянной обработкой массивов, таблиц с данными.
Успехов ;)
ТМВ
20.04.2019