English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R列表

Una lista è una raccolta di oggetti in R, che può essere utilizzata per salvare dati di diversi tipi, come numeri, stringhe, vettori, un'altra lista, ecc., naturalmente può includere anche matrici e funzioni.

In R, viene utilizzata la funzione list() per creare una lista.

Esempio seguente, creiamo una lista che contiene stringhe, vettori e numeri:

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

Possiamo utilizzare la funzione names() per dare nome agli elementi della lista:

# La lista contiene vettori, matrici, liste
list_data <- list(c("Google", "w3codebox", "Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("w3codebox", 12.3))
# Assegna nomi agli elementi della lista
names(list_data) <- c("Siti", "Numeri", "Liste")
# Visualizza la lista
print(list_data)

执行以上代码输出结果为:

$Siti
[1] "Google" "w3codebox" "Taobao"
$Numeri
     [,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$Lists
$Liste[[1]]
[1] "w3codebox"
$Liste[[2]]
[1] 12.3

Accedi alla lista

Gli elementi della lista possono essere acceduti tramite l'indice, se si utilizza names() Dopo aver chiamato il nome della funzione, possiamo accedere all'elemento corrispondente con il nome:

# La lista contiene vettori, matrici, liste
list_data <- list(c("Google", "w3codebox", "Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("w3codebox", 12.3))
# Assegna nomi agli elementi della lista
names(list_data) <- c("Siti", "Numeri", "Liste")
# Visualizza la lista
print(list_data[1])
# Accedi al terzo elemento della lista
print(list_data[3])
# Accedi all'elemento primo della vettore
print(list_data$Numeri)

执行以上代码输出结果为:

$Siti
[1] "Google" "w3codebox" "Taobao"
$Lists
$Liste[[1]]
[1] "w3codebox"
$Liste[[2]]
[1] 12.3
     [,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

Operazione sugli elementi della lista

Possiamo eseguire operazioni di aggiunta, rimozione e aggiornamento delle liste, come nell'esempio seguente:

# La lista contiene vettori, matrici, liste
list_data <- list(c("Google", "w3codebox", "Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("w3codebox", 12.3))
# Assegna nomi agli elementi della lista
names(list_data) <- c("Siti", "Numeri", "Liste")
# Aggiungi elemento
list_data[4] <- "nuovo elemento"
print(list_data[4])
# Elimina elemento
list_data[4] <- NULL
# Elimina e visualizza come 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