小编ska*_*aur的帖子

从R中的列表中打包和拆包元素

我有两个与在R中使用list相关的问题,我试图看看如何改进我天真的解决方案.我在这里看到过类似主题的问题,但那里描述的方法没有帮助.

Q1:

MWE:

a  <- c(1:5)
b  <- "adf"
c  <- array(rnorm(9), dim = c(3,3) )
Run Code Online (Sandbox Code Playgroud)
  • 列出名称为"packedList"的列表,同时保留所有变量的名称.
  • 当前解决方案 packedList <- list(a = a, b = b, c = c)

但是,如果变量的数量(上面的问题中有三个a, b, c)很大(比如我们有20个变量),那么我目前的解决方案可能不是最好的.

从函数返回大量变量时,这个想法很有用.

Q2:

MWE:给定packedList,提取变量a,b,c

  • 我想将给定列表中的所有元素(即packedList)提取到环境中,同时保留它们的名称.这与任务1相反.

例如:给定环境中的变量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)

r list packing

6
推荐指数
1
解决办法
3281
查看次数

标签 统计

list ×1

packing ×1

r ×1