繁体   English   中英

在R中取消列出多个列表

[英]Unlist multiple lists in R

如何一次取消列出多个列表?

给我一系列要取消列出的列表(通常超过10个):

ice_2000 = list(seq(1,5,1),seq(6,10,1),seq(11,15,1))
ice_1990 = list(seq(1,5,1),seq(6,10,1),seq(11,15,1))
ice_1980 = list(seq(1,5,1),seq(6,10,1),seq(11,15,1))

我已经尝试过类似的东西:

sample.yrs = c(2000,2005,2010)

nam <- paste("ice",sample.yrs, sep = "_") 

library(foreach) 


foreach(x = nam) %do% { 

temp.df <- as.data.frame(do.call("rbind",x))
assign(paste("df",x, sep="_"), temp.df )}

如何通过从矢量中按其名称调用各个列表,从而将其识别为列表对象?

您正在寻找get

get("ice_2000")

但是为什么不简单地:

lapply(list(ice_2000, ice_1990, ice_1980) , unlist)

最好的做法是将结构存储在列表中,而不是随机存储在内存中,然后尝试通过丑陋的粘贴/字符串操作加上get来抓取它们。

如果需要更正此结构默认值,则可以执行以下操作:

library(magrittr)

good = ls(pattern="ice_*") %>% lapply(get) %>% lapply(function(u) do.call(rbind, u))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM