R语言教程:列表

2022-08-0218:48:02编程语言入门到精通Comments1,094 views字数 2033阅读模式

列表是 R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

R 语言创建列表使用 list() 函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

如下实例,我们创建一个列表,包含了字符串、向量和数字:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

实例

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

执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

[[1]]
[1] "runoob"

[[2]]
[1] "google"

[[3]]
[1] 11 22 33

[[4]]
[1] 123

[[5]]
[1] 51.23

[[6]]
[1] 119.1

我们可以使用 names() 函数给列表的元素命名:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

实例

# 列表包含向量、矩阵、列表
list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
list("runoob",12.3))文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 给列表元素设置名字
names(list_data) <- c("Sites", "Numbers", "Lists")文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 显示列表
print(list_data)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

$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() 函数命名后,我们还可以使用对应名字来访问:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

实例

# 列表包含向量、矩阵、列表
list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
list("runoob",12.3))文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 给列表元素设置名字
names(list_data) <- c("Sites", "Numbers", "Lists")文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 显示列表
print(list_data[1])文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 访问列表的第三个元素
print(list_data[3])文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 访问第一个向量元素
print(list_data$Numbers)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

$Sites
[1] "Google" "Runoob" "Taobao"

$Lists
$Lists[[1]]
[1] "runoob"

$Lists[[2]]
[1] 12.3


     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

操作列表元素

我们可以对列表进行添加、删除、更新的操作,如下实例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

实例

# 列表包含向量、矩阵、列表
list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
list("runoob",12.3))文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 给列表元素设置名字
names(list_data) <- c("Sites", "Numbers", "Lists")文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 添加元素
list_data[4] <- "新元素"
print(list_data[4])文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 删除元素
list_data[4] <- NULL文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 删除后输出为 NULL
print(list_data[4])文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 更新元素
list_data[3] <- "我替换来第三个元素"
print(list_data[3])文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

[[1]]
[1] "新元素"

$<NA>
NULL

$Lists
[1] "我替换来第三个元素"

合并列表

我们可以使用 c() 函数将多个列表合并为一个列表:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

实例

# 创建两个列表
list1 <- list(1,2,3)
list2 <- list("Google","Runoob","Taobao")文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 合并列表
merged.list <- c(list1,list2)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 显示合并后的列表
print(merged.list)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] "Google"

[[5]]
[1] "Runoob"

[[6]]
[1] "Taobao"

列表转换为向量

要将列表转换为向量可以使用 unlist() 函数,将列表转换为向量,可以方便我们进行算术运算:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

实例

# 创建列表
list1 <- list(1:5)
print(list1)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

list2 <-list(10:14)
print(list2)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 转换为向量
v1 <- unlist(list1)
v2 <- unlist(list2)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

print(v1)
print(v2)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

# 两个向量相加
result <- v1+v2
print(result)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html

[[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
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26431.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26431.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定