[英]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.