Учебник | R | Типы и структуры данных

Хранение данных: типы данных R

Строительные блоки науки о данных в R

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

Типы данных

Начнем с разных типов данных. Хотя это не полный список, он охватывает некоторые из наиболее важных типов данных, которые используются в науке о данных.

  1. Числовой
  2. Факторы
  3. Характер
  4. Даты / время

Числовой

Числовой тип может иметь множество форм, например числовой, целочисленный и комплексный. Число может быть любым числом с десятичными знаками или без них. На других языках они называются числами с плавающей запятой. 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.