我認爲這是一個初學者問題,但我沒有看到有效的谷歌搜索的正確詞彙。對存儲在data.frame中的列表進行迭代R
我有一個data.frame,final
,它包含一個列表clusters
,其中每個是一個字符串列表。
我想迭代每個集羣中的字符串列表:for循環內的for循環。
for (j in final$clusters){
for (i in final$clusters$`j`){
print final$clusters$`j`[i]
}
}
j
對應列出clusters
,並且i
通過使用每個集羣的長度,而且我認爲他會像length(final$clusters[1])
對應項clusters[j]
我試圖做到這一點,但是這給出1,而不是列表的長度。
此外,final$clusters[1]
給$ '1',並在下一行,在集羣中的所有字符串1
感謝。
編輯:的dput(str(final))
輸出的要求:
List of 2
$ clusters :List of 1629
..$ 1 :
..$ 2 :
..$ 3 :
..$ 4 :
..$ 5 :
..$ 6 :
..$ 7 :
..$ 8 :
..$ 9 :
..$ 10 :
.. [list output truncated]
$ cluster_stats: num [1:1629, 1:6] 0.7 0.7 0.7 0.7 0.7 0.7 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:1629] "1" "2" "3" "4" ...
.. ..$ : chr [1:6] "min" "qu1" "median" "mean" ...
NULL
所以'rapply'正如你所說的那樣工作,列出清單清單(感謝您的澄清)。但是,我想一次僅打印一個列表(實際上,我希望使用「sink」將每個「簇」打印到不同的文件中),但我無法使用「打印」功能,使用@ pipo98的幫助和你的:'for(j in final $ clusters){rapply(final $ clusters [j],f = print)}'返回許多行NULL。 – dd3 2013-02-09 21:35:15
@ dd3不需要將'rapply'和'for'結合起來。 'Rapply'將通過列表重新獲得樹葉..我可以請輸入'dput(str(final))'並將其添加到您的問題中... – agstudy 2013-02-09 22:01:18
問題是我只想爲此做一個在一次的子列表中。在你的例子中,我只想得到'cluster1'的輸出,將它寫到一個文件中,然後對其他簇執行相同的操作,每個簇寫入不同的文件。我已將您請求的輸出添加到我的問題中。謝謝你的幫助。 – dd3 2013-02-09 22:47:38