2

我有一个简短的问题,我想取消嵌套这个嵌套列表:

mylist <- list(a = list(A=1, B=5), 
               b = list(C= 1, D = 2), 
               c = list(E = 1, F = 3))

预期结果是:

> list(a=c(1, 5), b = c(1, 2), c = c(1, 3))
$a
[1] 1 5

$b
[1] 1 2

$c
[1] 1 3

有什么建议么?

4

3 回答 3

4

其他人的轻微变化并将其保持在基础:

lapply(mylist, unlist, use.names=FALSE)

## $a
## [1] 1 5
## 
## $b
## [1] 1 2
## 
## $c
## [1] 1 3
于 2013-05-21T16:24:42.260 回答
3

看看llplyplyr 包中的函数

> library(plyr)
> llply(mylist, unlist)
$a
A B 
1 5 

$b
C D 
1 2 

$c
E F 
1 3 

如果您想摆脱名称,请尝试:

> lapply(llply(mylist, unlist), unname)
$a
[1] 1 5

$b
[1] 1 2

$c
[1] 1 3
于 2013-05-21T14:35:33.277 回答
0

我认为将 unlist() 应用于列表中的每个元素应该可以为您提供所需的内容:

> mylist <- list(a = list(A=1, B=5), b = list(C= 1, D = 2), c = list(E = 1, F = 3))
> mylist2 <- list(a=c(1, 5), b = c(1, 2), c = c(1, 3))
> data.frame(lapply(mylist,unlist))
  a b c
A 1 1 1
B 5 2 3
> data.frame(mylist2)
  a b c
1 1 1 1
2 5 2 3
于 2013-05-21T15:43:44.620 回答