Учебники

Аналитика больших данных — Введение в R

Этот раздел посвящен знакомству пользователей с языком программирования R. R можно скачать с сайта крана . Для пользователей Windows полезно установить rtools и IDE rstudio .

Общая концепция R заключается в том, чтобы служить интерфейсом для другого программного обеспечения, разработанного на скомпилированных языках, таких как C, C ++ и Fortran, и предоставлять пользователю интерактивный инструмент для анализа данных.

Перейдите в папку zip-файла книги bda / part2 / R_introduction и откройте файл R_introduction.Rproj . Это откроет сеанс RStudio. Затем откройте файл 01_vectors.R. Запустите скрипт построчно и следуйте комментариям в коде. Еще одна полезная опция для обучения — просто набрать код, это поможет вам привыкнуть к синтаксису R. В R комментарии пишутся с символом #.

Чтобы отобразить результаты выполнения R-кода в книге, после оценки кода возвращаются результаты R-комментариев. Таким образом, вы можете скопировать вставить код в книгу и попробовать непосредственно разделы этого в R.

# Create a vector of numbers 
numbers = c(1, 2, 3, 4, 5) 
print(numbers) 

# [1] 1 2 3 4 5  
# Create a vector of letters 
ltrs = c('a', 'b', 'c', 'd', 'e') 
# [1] "a" "b" "c" "d" "e"  

# Concatenate both  
mixed_vec = c(numbers, ltrs) 
print(mixed_vec) 
# [1] "1" "2" "3" "4" "5" "a" "b" "c" "d" "e"

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

Следующий код показывает тип данных различных векторов, возвращаемых классом функции. Обычно функция класса используется для «опроса» объекта, спрашивая его, каков его класс.

### Evaluate the data types using class

### One dimensional objects 
# Integer vector 
num = 1:10 
class(num) 
# [1] "integer"  

# Numeric vector, it has a float, 10.5 
num = c(1:10, 10.5) 
class(num) 
# [1] "numeric"  

# Character vector 
ltrs = letters[1:10] 
class(ltrs) 
# [1] "character"  

# Factor vector 
fac = as.factor(ltrs) 
class(fac) 
# [1] "factor"

R поддерживает двумерные объекты также. В следующем коде приведены примеры двух самых популярных структур данных, используемых в R: матрица и data.frame.

# Matrix
M = matrix(1:12, ncol = 4) 
#      [,1] [,2] [,3] [,4] 
# [1,]    1    4    7   10 
# [2,]    2    5    8   11 
# [3,]    3    6    9   12 
lM = matrix(letters[1:12], ncol = 4) 
#     [,1] [,2] [,3] [,4] 
# [1,] "a"  "d"  "g"  "j"  
# [2,] "b"  "e"  "h"  "k"  
# [3,] "c"  "f"  "i"  "l"   

# Coerces the numbers to character 
# cbind concatenates two matrices (or vectors) in one matrix 
cbind(M, lM) 
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] 
# [1,] "1"  "4"  "7"  "10" "a"  "d"  "g"  "j"  
# [2,] "2"  "5"  "8"  "11" "b"  "e"  "h"  "k"  
# [3,] "3"  "6"  "9"  "12" "c"  "f"  "i"  "l"   

class(M) 
# [1] "matrix" 
class(lM) 
# [1] "matrix"  

# data.frame 
# One of the main objects of R, handles different data types in the same object.  
# It is possible to have numeric, character and factor vectors in the same data.frame  

df = data.frame(n = 1:5, l = letters[1:5]) 
df 
#   n l 
# 1 1 a 
# 2 2 b 
# 3 3 c 
# 4 4 d 
# 5 5 e 

Как показано в предыдущем примере, в одном и том же объекте можно использовать разные типы данных. В общем, это то, как данные представлены в базах данных, часть данных API — это текстовые или символьные векторы и другие числовые значения. Задача аналитика — определить, какой тип статистических данных назначить, а затем использовать для него правильный тип данных R. В статистике мы обычно рассматриваем переменные следующих типов:

  • числовой
  • Номинальный или категориальный
  • порядковый

В R вектор может быть следующих классов:

  • Числовое — целое число
  • фактор
  • Упорядоченный фактор

R предоставляет тип данных для каждого статистического типа переменной. Упорядоченный коэффициент, однако, используется редко, но может быть создан с помощью функционального коэффициента или упорядочен.

В следующем разделе рассматривается понятие индексации. Это довольно распространенная операция, и она связана с проблемой выбора разделов объекта и преобразования в них.