首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按名称取消嵌套列表

按名称取消嵌套列表
EN

Stack Overflow用户
提问于 2020-03-05 13:16:37
回答 3查看 97关注 0票数 1

我导入一个嵌套的未知长度列表(此处2)和未知名称(此处为iter1和iter2),并获取该列表的名称:

代码语言:javascript
运行
复制
iter1 <- list(1, 2, 3, 4)
iter2 <- list(1, 2, 3, 4)

nested_list <- list(iter1 = iter1, iter2 = iter2)

names <- names(nested_list)

接下来我要做的就是:

代码语言:javascript
运行
复制
unlist <- data.frame(x=unlist(nested_list$iter1))

但由于我事先不知道名字,所以我想做这样的事情:

代码语言:javascript
运行
复制
unlist <- data.frame(x=unlist(nested_list$names[1]))

这肯定不管用。没有错误,但创建的列表为空。

最后,我想做这样的事情:

代码语言:javascript
运行
复制
for(i in 1:length(nested_list)) {
   unlist <- data.frame(x=unlist(nested_list$names[i]))
   print(unlist)
}
EN

Stack Overflow用户

回答已采纳

发布于 2020-03-05 13:30:18

使用Map,避免使用names向量。

代码语言:javascript
运行
复制
data.frame(Map(unlist, nested_list)[1])
#   iter1
# 1     1
# 2     2
# 3     3
# 4     4

或者,为了给列名加上mapply

代码语言:javascript
运行
复制
data.frame(x=mapply(unlist, nested_list)[,1])
#   x
# 1 1
# 2 2
# 3 3
# 4 4

括号中的1表示第一个列表名,相应地使用2作为第二个名称。

数据

代码语言:javascript
运行
复制
nested_list <- list(iter1 = list(1, 2, 3, 4), iter2 = list(1, 2, 3, 4))
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60546270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档