我有两个与在R中使用list相关的问题,我试图看看如何改进我天真的解决方案.我在这里看到过类似主题的问题,但那里描述的方法没有帮助.
MWE:
a <- c(1:5)
b <- "adf"
c <- array(rnorm(9), dim = c(3,3) )
Run Code Online (Sandbox Code Playgroud)
packedList <- list(a = a, b = b, c = c)但是,如果变量的数量(上面的问题中有三个a, b, c)很大(比如我们有20个变量),那么我目前的解决方案可能不是最好的.
从函数返回大量变量时,这个想法很有用.
MWE:给定packedList,提取变量a,b,c
例如:给定环境中的变量packedList,我可以如下定义a,b和c:
a <- packedList$a
b <- packedList$b
c <- packedList$c
Run Code Online (Sandbox Code Playgroud)
但是,如果变量的数量非常大,那么我的解决方案可能很麻烦.- 在谷歌搜索之后,我找到了一个解决方案,但我不确定它是否也是最优雅的解决方案.解决方案如下所示:
x <- packedList
for(i in 1:length(x)){
tempobj <- x[[i]]
eval(parse(text=paste(names(x)[[i]],"= tempobj")))
}
Run Code Online (Sandbox Code Playgroud)