Усе, з чим працює R, є об’єктами (також будемо їх називати ще “змінними”). Такими об’єктами є вектори, матриці, масиви, датафрейми, списки і фактори. Кожен з цих об’єктів складається з елементів певних типів: дійсних чисел, комплексних чисел, символів, логічних значень (ТАК, НІ - TRUE, FALSE), і байтів. Вектори, матриці та масиви є “атомарними” об’єктами, оскільки всі їхні елементи повинні бути одного типу (вектор символів, матриця чисел, масив байтів, та ін.). Датафрейми та списки є складними об’єктами, і містять елементи різних типів. Вектор – одновимірна впорядкована (у кожного елемента є свій номер - індекс) сукупність елементів. Матриця – двовимірна впорядкована сукупність елементів. Усі рядки матриці повинні мати однакову довжину (кількість елементів). І усі стовпці матриці також повинні мати однакову довжину. По суті, матриця складається із векторів одного типу і одинакової довжини. Масив – багатовимірне узагальнення матриці. Датафрейм – об’єкт, схожий на матрицю, однак відрізняється тим, що може містити елементи різних типів. Інформація для дослідження часто відображається за допомогою датафреймів: рядки датафрейму відповідають одиничним спостереженням, а стовпці – ознакам (властивостям, характеристикам), які можуть утворювати вектори чисел, вектори логічних значень та фактори. Списки є впорядкованими сукупностями інших об’єктів. У одному списку можуть бути присутні різні вектори, матриці, масиви, датафрейми і навіть інші списки (і це ще не повний перелік). Фактори можна розглядати як спеціальний різновид символьних векторів. Фактори призначені для запису номінальних ознак – ознак, що утворюють групи. Щоб створити вектор у R, можна використати функцію с()

c() скорочено від англ. concatenate – “з’єднати“, або від combine – “сполучити”.

a <- c(2, 3, 6, 0, 1, -3)
a
## [1]  2  3  6  0  1 -3

Таким чином ми створили змінну a і записали у неї вектор із шести чисел. Щоб вивести вміст змінної, просто вказуєм її назву і натискаємо Enter. Знак <- є оператором присвоєння, тобто він результат, обчислений у правій частині, присвоює змінній, записаній у лівій частині. Замість нього можна також використовувати знак =. Аналогічно створюється вектор символів:

b <- c("raz", "dva", "tru")
b
## [1] "raz" "dva" "tru"

та вектор логічних значень:

B <- c(TRUE, TRUE, FALSE)
B
## [1]  TRUE  TRUE FALSE

Слід також зазначити, що R чутливий до регістру, тобто змінна b і B – дві різні змінні. І навіть змінні dani та Dani – різні. Щоб створити матрицю, можна використати функції rbind() (сполучення рядків), або cbind() (сполучення стовпців). А кожен рядок чи стовпець відповідно, формувати за допомогою с(). Наприклад:

c <- rbind(c(1, 2), c(3, 4), c(5, 6))
c
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
## [3,]    5    6

Зверніть увагу на квадратні дужки – це індекси відповідно рядків та стовпців. У квадратних дужках перше число стосується рядків, а друге (те яке після коми) – стовпців. Якщо потрібно усі рядки, то індекс рядків потрібно пропустити, а якщо усі стовпці – пропускаємо індекс стовпців. Так, позначення [1,] означає “перший рядок”, позначення [,1] означає “перший стовпчик”, а позначення [3,2] – число, що стоїть на перетині третього рядка і другого стовпця. Кожному індексу, звичайно, передує назва змінної, елемент якої він позначає.

c[1, ]
## [1] 1 2
c[, 1]
## [1] 1 3 5
c[3, 2]
## [1] 6

Знак “мінус” - перед числом індекса означає “всі крім цього рядка/стовпця”. Наприклад,

c[-2, ]
##      [,1] [,2]
## [1,]    1    2
## [2,]    5    6

видасть матрицю с без другого рядка. Створити датафрейм можна, наприклад, за допомогою функції data.frame(). Попередньо вже було створено вектори a, b i B різних типів. Внесемо їх у єдиний датафрейм:

d <- data.frame(a[1:3], b, B)
d
##   a.1.3.   b     B
## 1      2 raz  TRUE
## 2      3 dva  TRUE
## 3      6 tru FALSE

a[1:3] позначає перші три елементи вектора а. Ми узяли лише три елементи, оскільки всі стовпці (вектори) датафрейму повинні мати однакову довжину. До речі, усі символьні вектори функція data.frame() автоматично конвертує у фактори. Щоб явним чином створити фактор, використовується функція factor(), наприклад

e <- factor(b)
e
## [1] raz dva tru
## Levels: dva raz tru

Щоб створити список, можна використати функцію list() :

f <- list(a, b, B, c, d, e)
f
## [[1]]
## [1]  2  3  6  0  1 -3
## 
## [[2]]
## [1] "raz" "dva" "tru"
## 
## [[3]]
## [1]  TRUE  TRUE FALSE
## 
## [[4]]
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
## [3,]    5    6
## 
## [[5]]
##   a.1.3.   b     B
## 1      2 raz  TRUE
## 2      3 dva  TRUE
## 3      6 tru FALSE
## 
## [[6]]
## [1] raz dva tru
## Levels: dva raz tru

Бачимо, що для індексації елементів списку використовують також подвійні квадратні дужки [[ ]] . Різниця наступна: f[1] видасть нам перший елемент списку – вектор а, f[[1]] видасть нам вміст першого елементу списку (вектора а).

  • Ключові слова:
  • R