Как врач, начать изучать программирование — это крутая кривая великолепной девушки, выходящей за рамки нашей лиги. Изучение R поднимает его на несколько уровней. Это действительно трудный путь.

Но не бойтесь. С тех пор, как меня беспокоили мои попытки программирования, я разработал стратегию, чтобы победить среди обломков кодов. Это не придуманный задним числом план (когда я запоминаю вещи с предвзятостью относительно того, что сработало), а скорее предполагаемый набор правил, который я буду использовать, чтобы максимально использовать свои (и, надеюсь, ваши) ) время и усилия. Если вы решите присоединиться ко мне в этом путешествии, имейте в виду — я не обещаю миру; возможно, по крайней мере, некоторое удовлетворение от знания того, как все работает за кулисами, и ободрение от того, что мы тоже можем присоединиться к драке.

Для начала я буду следовать трем (общим) правилам изучения этого языка:

  1. Всегда стремитесь узнать лучшие практики и их обоснование.
  2. Псевдокод перед реальным кодом, т. е. сначала запишите то, что вы хотите сделать (алгоритм), на простом английском языке.
  3. Не усложняйте задачи (возможно, самые сложные).

Начнем с Дня №1 (сегодня):

  1. R — векторный язык

Что черт возьми, это значит? Затем мне сказали, что это язык программирования массивов. Поди-ка, до сих пор не имел ни малейшего представления. Я начал понимать это с самого начала. Представьте себе эту матрицу (структура данных, в которой все переменные относятся к одному классу, например число или целое число):

Допустим, вы хотите выполнить некоторые вычисления для каждого числа (целочисленного класса, как указано выше) в каждой ячейке этой матрицы (или иначе называемой «элементами»); например, вы хотите разделить каждый из них на 5. В традиционном скалярном языке вам пришлось бы писать код для каждого элемента и применять их по отдельности, что было бы неприятно долго. В R это однострочная команда, которая применяется один раз и выполняется для каждого элемента без явного указания. Вот что на самом деле означает R, основанный на векторах. Мы доберемся до мельчайших деталей по мере продвижения, но понимание этого имеет основополагающее значение.

2. Работайте с фреймами данных, чтобы упростить себе жизнь

В R существует множество различных типов структур данных, но два наиболее распространенных: matrix и dataframe. Последний имеет то преимущество, что работает с переменными разных классов и, следовательно, наиболее широко используется в анализе. Матрицы более эффективно используют память. Но я получил много. Поэтому впредь я буду читать свой набор данных в R как кадры данных (команда read.csv).

3. Операторов k!=ng

Поскольку кадры данных хранятся в объектах, большая часть нашего анализа будет сосредоточена на этих объектах. Правильный способ объективировать кадры данных — использовать ‹- (оператор присваивания), хотя вы также можете использовать =, но это настоятельно не рекомендуется. Список распространенных операторов можно найти здесь.

4. Используйте RStudio, а не базовый R… опять же, для облегчения жизни.

Одно из многих преимуществ, которое я понял сегодня, — это относительное отсутствие ошибок в кавычках («») в RStudio. Начните использовать RStudio в качестве платформы R по умолчанию, и вы поймете, почему. Кроме того, 4-квадрантный макет визуально привлекательнее, чем 4 всплывающих вкладок в базе R.

5. R состоит из функций

Функции — это правила выполнения длинных фрагментов кода для выполнения задачи. R имеет встроенные функции, с помощью которых он запускает все остальное. Мы можем импортировать другие функции, загрузив пакеты (install.packages), а затем загрузив их (библиотеку) в нашу рабочую область. Мы также можем писать собственные функции, и эта перспектива меня больше всего заводит. Вы никогда не сможете написать свои собственные функции на других платформах, таких как Stata, и это ключевая особенность, которая отличает R от остальных.

Это все на сегодня. Для начинающих (таких как я), программистов среднего и продвинутого уровня предостережение: приведенные выше уроки являются моими собственными и не высечены на камне. Я совершенно уверен, что есть лучшие способы оптимизировать нашу работу или альтернативное обоснование, например, почему мы должны работать только на базе R. В любом случае, пожалуйста, поделитесь своим опытом, мыслями, идеями и критическими замечаниями.

Поиск в Google для изучения R вернет массив ресурсов. Один сайт, который я нашел особенно подходящим для нашего подхода не усложняй изучение R, — это блог Nice R code. Моей следующей задачей будет создание собственных функций, соответствующих моим данным, и я поделюсь своим опытом в следующей статье.