English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Списки являются объектами R, которые могут использоваться для хранения различных типов данных, таких как числа, строки, векторы, другой список и т.д., конечно, также могут содержать матрицы и функции.
В R языке списки создаются с помощью функции list()
Как в следующем примере, мы создаем список, который содержит строки, векторы и числа:
list_data <- list("w3codebox", "google", c(11,22,33), 123, 51.23, 119.1) print(list_data)
Результат выполнения вышеуказанного кода:
[[1]] [1] "w3codebox" [[2]] [1] "google" [[3]] [1] 11 22 33 [[4]] [1] 123 [[5]] [1] 51.23
Мы можем использовать функцию names() для присвоения имен элементам списка:
# Список содержит векторы, матрицы, списки list_data <- list(c("Google", "w3codebox", "Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2), list("w3codebox", 12.3)) # Назначение имен элементам списка names(list_data) <- c("Sites", "Numbers", "Lists") # Показ списка print(list_data)
Результат выполнения вышеуказанного кода:
$Sites [1] "Google" "w3codebox" "Taobao" $Numbers [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 $Lists $Lists[[1]] [1] "w3codebox" $Lists[[2]] [1] 12.3
Элементы списка можно доступа через индекс, если использовать names() После присвоения имени функции, мы можем использовать соответствующее имя для доступа:
# Список содержит векторы, матрицы, списки list_data <- list(c("Google", "w3codebox", "Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2), list("w3codebox", 12.3)) # Назначение имен элементам списка names(list_data) <- c("Sites", "Numbers", "Lists") # Показ списка print(list_data[1]) # Доступ к третьему элементу списка print(list_data[3]) # Доступ к первому вектору print(list_data$Numbers)
Результат выполнения вышеуказанного кода:
$Sites [1] "Google" "w3codebox" "Taobao" $Lists $Lists[[1]] [1] "w3codebox" $Lists[[2]] [1] 12.3 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
Мы можем выполнять операции добавления, удаления и обновления списков, например:
# Список содержит векторы, матрицы, списки list_data <- list(c("Google", "w3codebox", "Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2), list("w3codebox", 12.3)) # Назначение имен элементам списка names(list_data) <- c("Sites", "Numbers", "Lists") # Добавление элемента list_data[4] <- "новый элемент" print(list_data[4]) # Удаление элемента list_data[4] <- NULL # Удаление после вывода становится NULL print(list_data[4]) # Обновление элемента list_data[3] <- "Я заменяю третий элемент" print(list_data[3])
Результат выполнения вышеуказанного кода:
[[1]] [1] "Новый элемент" $<NA> NULL $Lists [1] "Я заменяю третий элемент"
Можно использовать функцию c() для объединения нескольких списков в один список:
# Создание двух списков list1 <- list(1, 2, 3) list2 <- list("Google", "w3codebox", "Taobao") # Объединение списков merged.list <- c(list1, list2) # Показать объединенный список print(merged.list)
Результат выполнения вышеуказанного кода:
[[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 [[4]] [1] "Google" [[5]] [1] "w3codebox" [[6]] [1] "Taobao"
Чтобы преобразовать список в вектор, можно использовать функцию unlist(), которая позволяет легко выполнять арифметические операции:
# Создание списка list1 <- list(1:5) print(list1) list2 <- list(10:14) print(list2) # Преобразование списка в вектор v1 <- unlist(list1) v2 <- unlist(list2) print(v1) print(v2) # Сумма двух векторов result <- v1 + v2 print(result)
Результат выполнения вышеуказанного кода:
[[1]] [1] 1 2 3 4 5 [[1]] [1] 10 11 12 13 14 [1] 1 2 3 4 5 [1] 10 11 12 13 14 [1] 11 13 15 17 19