Учебники

7) Списки в R

Что такое список?

Список является отличным инструментом для хранения многих видов объектов в порядке ожидаемого. Мы можем включать матрицы, векторные кадры данных или списки. Мы можем представить список в виде сумки, в которую мы хотим поместить много разных предметов. Когда нам нужно использовать предмет, мы открываем сумку и используем ее. Список похож; мы можем хранить коллекцию объектов и использовать их, когда они нам нужны.

Как создать список

Мы можем использовать функцию list () для создания списка.

list(element_1, ...)
arguments:
-element_1: store any type of R object
-...: pass as many objects as specifying. each object needs to be separated by a comma

В приведенном ниже примере мы создаем три разных объекта: вектор, матрицу и фрейм данных.

Шаг 1) Создайте вектор

# Vector with numeric from 1 up to 5
vect  <- 1:5

Шаг 2) Создайте матрицы

# A 2x 5 matrix
mat  <- matrix(1:9, ncol = 5)
dim(mat)

Вывод:

## [1] 2 5

Шаг 3) Создание фрейма данных

# select the 10th row of the built-in R data set EuStockMarkets
df <- EuStockMarkets[1:10,]

Шаг 4) Создайте список

Теперь мы можем поместить три объекта в список.

# Construct list with these vec, mat, and df:
my_list <- list(vect, mat, df)
my_list

Вывод:

## [[1]]
## [1] 1 2 3 4 5

## [[2]]
##       [,1] [,2] [,3] [,4] [,5]
## [1,]    1    3    5    7    9
## [2,]    2    4    6    8    1

## [[3]]
##          DAX    SMI    CAC   FTSE
##  [1,] 1628.75 1678.1 1772.8 2443.6
##  [2,] 1613.63 1688.5 1750.5 2460.2
##  [3,] 1606.51 1678.6 1718.0 2448.2
##  [4,] 1621.04 1684.1 1708.1 2470.4
##  [5,] 1618.16 1686.6 1723.1 2484.7
##  [6,] 1610.61 1671.6 1714.3 2466.8
##  [7,] 1630.75 1682.9 1734.5 2487.9
##  [8,] 1640.17 1703.6 1757.4 2508.4
##  [9,] 1635.47 1697.5 1754.0 2510.5
##  [10,] 1645.89 1716.3 1754.3 2497.4

Выбрать элементы из списка

После того, как мы построили наш список, мы можем легко получить к нему доступ. Нам нужно использовать [[index]], чтобы выбрать элемент в списке. Значение внутри двойной квадратной скобки представляет позицию элемента в списке, который мы хотим извлечь. Например, мы передаем 2 в скобках, R возвращает второй элемент в списке.

Давайте попробуем выбрать вторые элементы списка с именем my_list, мы используем my_list [[2]]

# Print second element of the list
my_list[[2]]

Вывод:

##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    3    5    7    9
## [2,]    2    4    6    8    1

Встроенный фрейм данных

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

PATH <-'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/prison.csv'
df <- read.csv(PATH)[1:5]
head(df, 5)

Вывод:

##   X state year govelec black
## 1 1     1   80       0 0.2560
## 2 2     1   81       0 0.2557
## 3 3     1   82       1 0.2554
## 4 4     1   83       0 0.2551
## 5 5     1   84       0 0.2548

Мы можем проверить структуру фрейма данных с помощью str:

# Structure of the data
str(df)

Вывод:

## 'data.frame':    714 obs. of  5 variables:
##  $ X      : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ state  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ year   : int  80 81 82 83 84 85 86 87 88 89 ...
##  $ govelec: int  0 0 1 0 0 0 1 0 0 0 ...
##  $ black  : num  0.256 0.256 0.255 0.255 0.255 ...

Все переменные хранятся в числовом формате.