Учебник | R | Типы и структуры данных
Хранение данных: типы данных R
Строительные блоки науки о данных в R
Чтобы заниматься наукой о данных с R, нам нужно хранить наши данные в переменных. В зависимости от того, какие у нас данные, нам нужно будет дать им правильный тип. Выбирая другой тип, мы можем получить доступ к различным инструментам для управления и использования этой переменной позже. Некоторые из них более гибкие, а другие более эффективны с точки зрения вычислений. Давайте погрузимся.
Типы данных
Начнем с разных типов данных. Хотя это не полный список, он охватывает некоторые из наиболее важных типов данных, которые используются в науке о данных.
- Числовой
- Факторы
- Характер
- Даты / время
Числовой
Числовой тип может иметь множество форм, например числовой, целочисленный и комплексный. Число может быть любым числом с десятичными знаками или без них. На других языках они называются числами с плавающей запятой. 31
, -4.2
и 0.00324
все числовые. Целые числа содержат только целые числа. 3
и -24
являются примерами целых чисел. У комплексных чисел есть мнимая часть, например 2 + 3i
.
Вы можете определить эти числовые типы следующим образом:
# Numeric x <- 27.5 # Integer y <- 12L # Complex z <- 2 + 3i
Если вы используете RStudio, вы можете навести курсор на каждую переменную на панели «Среда», чтобы увидеть ее тип.
Функцию typeof()
также можно использовать для получения типа переменной. Тип double
для x - один из наиболее распространенных числовых форматов, которые вы можете встретить при работе с числовыми данными.
typeof(x) # "double" typeof(y) # "integer" typeof(z) # "complex"
Определив некоторые числовые данные, вы можете использовать R в качестве калькулятора. Работают все стандартные операторы, такие как +
, -
, *
и /
. Существуют также полезные функции, такие как abs()
, чтобы найти абсолютное значение числа, или exp()
, чтобы вычислить e
по значению внутри круглых скобок.
x + y # 39.5 x * z # 23+36i abs(x) # 27.5 exp(x) # 877199251319
Факторы
Факторы - это категории в ваших данных. Вы обычно будете видеть в своих данных такие вещи, как самец и самка или сетоса, разноцветный, вирджинский (из набора данных iris). Это способы сегментировать ваши данные, и они будут содержать много повторений. Факторы помогают хранить их намного эффективнее, представляя каждую категорию цифрой.
gender <- factor("male", levels = c("male", "female")) flower_type <- factor("setosa", levels = c( "virginica", "setosa", "versicolor")) print(gender) # male # Levels: male female print(flower_type) # setosa # Levels: virginica setosa versicolor
Когда вы печатаете коэффициент, вы видите названия уровней. Если вы посмотрите на панель окружения в RStudio, вы увидите число. Это экономия места R за счет представления фактора как соответствующего уровня переменной.
Вы можете начать видеть, как это может сэкономить место, когда мы создадим gender_2
. Вместо 1 фактора у нас будет 5 факторов.
gender_2 <- factor(c("male", "female", "female", "female", "male"), levels = c("male", "female")) print(gender_2) # male female female female male # Levels: male female
В нашем окне среды мы теперь видим, что есть несколько единиц 1 и 2, которые представляют разные полы в gender_2
.
Функция table()
полезна для работы с факторами. Он дает подсчет каждого уровня ваших данных.
table(gender_2) # gender_2 # male female # 2 3
В зависимости от того, что вам нужно знать, nlevels()
и levels()
дают вам количество уровней в факторе и названия уровней соответственно.
nlevels(gender_2) # 2 levels(gender_2) # "male" "female"
Символы
Символы - это способ представления текста R. Если вы переходите с другого языка программирования, их часто называют строками. Вы можете хранить целые книги в одной строковой переменной или бесплатные ответы из текстовой записи в опросе на веб-сайте.
Чтобы определить символ в R, мы заключаем текст в кавычки. Вы можете использовать одинарные кавычки ('
) или двойные кавычки ("
). R интерпретирует их так же. Я считаю, что двойные кавычки более распространены в R, но одинарные кавычки часто используются в других языках программирования, так что вы также можете встретить их.
character <- 'string' print(character) # "string" text <- "This is also a string" print(text) # "This is also a string"
R содержит несколько встроенных функций, которые полезны при работе с символьным текстом. nchar()
дает количество символов в символьной переменной, а paste()
объединяет символьные переменные вместе, разделенные пробелом.
nchar(text) # 21 paste(character, text) # "string This is also a string"
Существует также пакет stringr
, который позволяет использовать такие методы обработки текста, как подстановка, получение символов переменной длины и даже поиск текста с помощью регулярных выражений (или регулярных выражений). Регулярные выражения чрезвычайно гибки и важны для освоения манипуляций с текстом.
Даты и время
В мире бизнеса и лонгитюдных исследованиях одни и те же данные собираются через определенные промежутки времени, например, в конце месяца, каждый день или каждый год. Чтобы организовать эти наблюдения для последующей визуализации и анализа, нам нужны переменные даты и времени.
R имеет несколько встроенных переменных даты и времени, но использование пакета lubridate
значительно упрощает их анализ и работу. Вы можете определить дату во многих различных форматах, используя lubridate
. Он даже автоматически обрабатывает разделители в датах, такие как косая черта, тире, двоеточие или пробелы!
library(lubridate) sample_date <- ymd("2020-01-21") print(sample_date) # "2020-01-21" sample_datetime <- mdy_hms("1/23/2021 2:53:22") print(sample_datetime) # "2021-01-23 02:53:22"
После того, как вы определили дату и время, вы можете делать с ними много разных вещей. Вы можете извлечь каждый отдельный компонент даты и времени, добавить период времени или округлить их.
# Extract datetime components ---------------- month(sample_date) # 1 second(sample_datetime) # 21 # Add a period of time ----------------------- sample_date + years(50) # "2070-01-21" # Round a datetime down by month -------------floor_date(sample_date, unit = "month") # "2020-01-01"
Есть так много других вещей, которые вы можете сделать с датами и временем, и если вы хотите узнать больше, посмотрите lubridate
шпаргалку.
Вывод
Из этого краткого обзора некоторых наиболее распространенных типов данных в R вы получите представление о том, как можно хранить переменные, и о некоторых преимуществах различных типов. Чтобы продолжить развитие ваших знаний о типах данных в R, вам нужно взглянуть на структуры данных. Это коллекции переменных в R, которые используются для хранения данных и более сложного анализа.
Я пишу о данных, аналитике и программировании. Вы можете связаться со мной в Medium, Twitter и LinkedIn.