簡體   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