阅读 85

R 列表(r列表的选择)

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

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

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

示例

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

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

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

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

示例

# 列表包含向量、矩阵、列表list_data <- list(c("Google","Nhooo","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("nhooo",12.3))# 给列表元素设置名字names(list_data) <- c("Sites", "Numbers", "Lists")# 显示列表print(list_data)

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

$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() 函数命名后,我们还可以使用对应名字来访问:

示例

# 列表包含向量、矩阵、列表list_data <- list(c("Google","Nhooo","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("nhooo",12.3))# 给列表元素设置名字names(list_data) <- c("Sites", "Numbers", "Lists")# 显示列表print(list_data[1])# 访问列表的第三个元素print(list_data[3])# 访问第一个向量元素print(list_data$Numbers)

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

$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

操作列表元素

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

示例

# 列表包含向量、矩阵、列表list_data <- list(c("Google","Nhooo","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("nhooo",12.3))# 给列表元素设置名字names(list_data) <- c("Sites", "Numbers", "Lists")# 添加元素list_data[4] <- "新元素"print(list_data[4])# 删除元素list_data[4] <- NULL# 删除后输出为 NULLprint(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","Nhooo","Taobao")# 合并列表merged.list <- c(list1,list2)# 显示合并后的列表print(merged.list)

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

[[1]]
[1] 1[[2]]
[1] 2[[3]]
[1] 3[[4]]
[1] "Google"[[5]]
[1] "Nhooo"[[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+v2print(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


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐