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

助言がありますか?

T

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 に答える