R 列表

列表是 R 語言的對象集合,可以用來保存不同類型的數(shù)據(jù),可以是數(shù)字、字符串、向量、另一個(gè)列表等,當(dāng)然還可以包含矩陣和函數(shù)。

R 語言創(chuàng)建列表使用 list() 函數(shù)。

如下示例,我們創(chuàng)建一個(gè)列表,包含了字符串、向量和數(shù)字:

list_data <- list("nhooo", "google", c(11,22,33), 123, 51.23, 119.1)
print(list_data)

執(zhí)行以上代碼輸出結(jié)果為:

[[1]]
[1] "nhooo"
[[2]]
[1] "google"
[[3]]
[1] 11 22 33
[[4]]
[1] 123
[[5]]
[1] 51.23

我們可以使用 names() 函數(shù)給列表的元素命名:

# 列表包含向量、矩陣、列表
list_data <- list(c("Google","Nhooo","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("nhooo",12.3))

# 給列表元素設(shè)置名字
names(list_data) <- c("Sites", "Numbers", "Lists")

# 顯示列表
print(list_data)

執(zhí)行以上代碼輸出結(jié)果為:

$Sites
[1] "Google" "Nhooo" "Taobao"
$Numbers
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
$Lists
$Lists[[1]]
[1] "nhooo"
$Lists[[2]]
[1] 12.3

訪問列表

列表中的元素可以使用索引來訪問,如果使用來 names() 函數(shù)命名后,我們還可以使用對應(yīng)名字來訪問:

# 列表包含向量、矩陣、列表
list_data <- list(c("Google","Nhooo","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("nhooo",12.3))

# 給列表元素設(shè)置名字
names(list_data) <- c("Sites", "Numbers", "Lists")

# 顯示列表
print(list_data[1])

# 訪問列表的第三個(gè)元素
print(list_data[3])

# 訪問第一個(gè)向量元素
print(list_data$Numbers)

執(zhí)行以上代碼輸出結(jié)果為:

$Sites
[1] "Google" "Nhooo" "Taobao"
$Lists
$Lists[[1]]
[1] "nhooo"
$Lists[[2]]
[1] 12.3
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

操作列表元素

我們可以對列表進(jìn)行添加、刪除、更新的操作,如下示例:

# 列表包含向量、矩陣、列表
list_data <- list(c("Google","Nhooo","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("nhooo",12.3))

# 給列表元素設(shè)置名字
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] <- "我替換來第三個(gè)元素"
print(list_data[3])

執(zhí)行以上代碼輸出結(jié)果為:

[[1]]
[1] "新元素"
$<NA>
NULL
$Lists
[1] "我替換來第三個(gè)元素"

合并列表

我們可以使用 c() 函數(shù)將多個(gè)列表合并為一個(gè)列表:

# 創(chuàng)建兩個(gè)列表
list1 <- list(1,2,3)
list2 <- list("Google","Nhooo","Taobao")

# 合并列表
merged.list <- c(list1,list2)

# 顯示合并后的列表
print(merged.list)

執(zhí)行以上代碼輸出結(jié)果為:

[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] "Google"
[[5]]
[1] "Nhooo"
[[6]]
[1] "Taobao"

列表轉(zhuǎn)換為向量

要將列表轉(zhuǎn)換為向量可以使用 unlist() 函數(shù),將列表轉(zhuǎn)換為向量,可以方便我們進(jìn)行算術(shù)運(yùn)算:

# 創(chuàng)建列表
list1 <- list(1:5)
print(list1)

list2 <-list(10:14)
print(list2)

# 轉(zhuǎn)換為向量
v1 <- unlist(list1)
v2 <- unlist(list2)

print(v1)
print(v2)

# 兩個(gè)向量相加
result <- v1+v2
print(result)

執(zhí)行以上代碼輸出結(jié)果為:

[[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
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清