21
2020
08

R 列表

列表是 R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数。

R 语言创建列表使用 list() 函数。

如下实例,我们创建一个列表,包含了字符串、向量和数字:

实例

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

print(list_data)

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

[[1]]

[1] "runoob"


[[2]]

[1] "google"


[[3]]

[1] 11 22 33


[[4]]

[1] 123


[[5]]

[1] 51.23

我们可以使用 names() 函数给列表的元素命名:

实例

# 列表包含向量、矩阵、列表

list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),

   list("runoob",12.3))


# 给列表元素设置名字

names(list_data) <- c("Sites", "Numbers", "Lists")


# 显示列表

print(list_data)

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

$Sites

[1] "Google" "Runoob" "Taobao"


$Numbers

     [,1] [,2] [,3]

[1,]    1    3    5

[2,]    2    4    6


$Lists

$Lists[[1]]

[1] "runoob"


$Lists[[2]]

[1] 12.3

访问列表

列表中的元素可以使用索引来访问,如果使用来 names() 函数命名后,我们还可以使用对应名字来访问:

实例

# 列表包含向量、矩阵、列表

list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),

   list("runoob",12.3))


# 给列表元素设置名字

names(list_data) <- c("Sites", "Numbers", "Lists")


# 显示列表

print(list_data[1])


# 访问列表的第三个元素

print(list_data[3])


# 访问第一个向量元素

print(list_data$Numbers)

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

$Sites

[1] "Google" "Runoob" "Taobao"


$Lists

$Lists[[1]]

[1] "runoob"


$Lists[[2]]

[1] 12.3



     [,1] [,2] [,3]

[1,]    1    3    5

操作列表元素

我们可以对列表进行添加、删除、更新的操作,如下实例:

实例

# 列表包含向量、矩阵、列表

list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),

   list("runoob",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","Runoob","Taobao")


# 合并列表

merged.list <- c(list1,list2)


# 显示合并后的列表

print(merged.list)

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

[[1]]

[1] 1


[[2]]

[1] 2


[[3]]

[1] 3


[[4]]

[1] "Google"


[[5]]

[1] "Runoob"


[[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

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。