2017-12-10 5 views
1

私はそうのように見えるネストされたリスト持っている:私は、私がアクセスできるようにあらゆるレベルでこのリストを平らにしたいと思いますあらゆるレベルでネストされたリストを平ら

> spec 

$Data[[1]] 
$Data[[1]]$Nusers 
[1] 5292 

$Data[[2]] 
$Data[[2]]$Nitems 
[1] 4890 

$Data[[3]] 
$Data[[3]]$Nsessions 
[1] 45618 

... 

$Parameters[[4]] 
$Parameters[[4]]$ICgroups 
$Parameters[[4]]$ICgroups[[1]] 
$Parameters[[4]]$ICgroups[[1]]$group_1 
$Parameters[[4]]$ICgroups[[1]]$group_1[[1]] 
$Parameters[[4]]$ICgroups[[1]]$group_1[[1]]$ICidx 
[1] "1-1" 

$Parameters[[4]]$ICgroups[[1]]$group_1[[2]] 
$Parameters[[4]]$ICgroups[[1]]$group_1[[2]]$ICeffects 
[1] "1-5" 

$Parameters[[4]]$ICgroups[[1]]$group_1[[3]] 
$Parameters[[4]]$ICgroups[[1]]$group_1[[3]]$ICeffectsPrice 
[1] "1-3" 

$Parameters[[4]]$ICgroups[[2]] 
$Parameters[[4]]$ICgroups[[2]]$group_2 
$Parameters[[4]]$ICgroups[[2]]$group_2[[1]] 
$Parameters[[4]]$ICgroups[[2]]$group_2[[1]]$ICidx 
[1] "2-173" 

$Parameters[[4]]$ICgroups[[2]]$group_2[[2]] 
$Parameters[[4]]$ICgroups[[2]]$group_2[[2]]$ICeffects 
[1] "6-10" 

$Parameters[[4]]$ICgroups[[2]]$group_2[[3]] 
$Parameters[[4]]$ICgroups[[2]]$group_2[[3]]$ICeffectsPrice 
[1] "4-6" 

を例えばspec$Parameters$ICgroups$group_1$ICidxでも私のpurrr fuは私に失敗しています。

答えて

1

plyr::llplyunlistとするとどうなりますか?

私はlstを私の解決策your previous postに使っています。

require(plyr); 
llply(lst, unlist) 
#$Data 
#   datadir    Nusers 
#"/data/2017-11-22"    "5292" 
# 
#$Parameters 
#    outdir      K      IC 
#"/data/2017-11-22/out"     "20"     "179" 
#  ICgroups.group 1  ICgroups.ICeffects  ICgroups.group 2 
#     "1-1"     "1-5"    "2-173" 
# ICgroups.ICeffects  ICgroups.group 3  ICgroups.ICeffects 
#    "6-10"    "175-179"    "11-15" 
+0

私は 'plyr'の読み込みに熱心ではありません - 時には一時機能を隠すことがあります。しかしもっと重要なことに、これは第2レベルのリストを完全に平らにする。私は木の構造を維持したい、ちょうど不要なレベルを取り除く。 – RoyalTS

+0

@RoyalTS十分に公正です。その場合、「不要なレベル」は何かを明確にしてください。また、以前の質問を正式に閉鎖するために私の答えを受け入れることをお勧めします。 –

+0

@RoyalTS、もしこれがあなたの出力であれば、plyrをロードするのではなく 'lapply(lst、unlist)'を使うだけかもしれません。 – A5C1D2H2I1M1N2O1R2T1

関連する問題