リスト内のすべてのネストされたリストの列を直接選択することは可能ですか?
私のリストは、aggregate()とtable()を使用して作成されています。
AgN=aggregate(data,by=list(d$date),FUN=table,useNA="no")
AgN$x
次のようになります:
$`0`
1 2 3 9 11
0.447204969 0.438509317 0.096894410 0.009937888 0.007453416
$`1`
1 2 4 8 11
0.489974937 0.389724311 0.102756892 0.006265664 0.011278195
…
$n
各テーブルの特定の列のベクトル、たとえば「1」という名前のすべての列の値を含むベクトルを取得したいと思います。私はまだRの初心者ですが、長い間検索して試した後でも、良い解決策は見つかりませんでした。リストのフィールドを取得したい場合は、[i、j]のように角かっこで簡単にインデックスを付けることができます。
オンラインで行列の例をいくつか見つけたので、同じことを試みました。最初は、でネストされたリストの列を1つだけ選択しましAgN$x[1][1]
たが、それでもリスト全体を選択しています。
$
0
1 2 3 8 11
0.447204969 0.438509317 0.096894410 0.009937888 0.007453416
私の次の試みはでしたAgN$x[[1]][1]
、そしてそれは働いていました:
1
0.447205
そこで、同じようにして、ネストされたすべてのリストの最初の各列の値を選択しようとしました。
AgN$x[[1:length(AgN$x]][1]
Recursive indexing failed at level 2
明らかに問題は、二重角かっこを使用する場合、範囲を選択することが禁止されていることです。
私の最後の試みは、forループを使用することでした。
cduR=NULL
for (i in 1:length(AgN$x)){
t=AgN$x[[i]]
cduR=c(cduR,as.vector(t["1"]))
}
最後に、これまでのところ、それは機能しているようです。しかし、そうすれば、列を選択するたびにループを構築する必要がありました。直接的な方法はありませんか?
ご協力いただきありがとうございます。