是否可以直接选择列表中所有嵌套列表的列?
我的列表是使用带有 table() 的 aggregate() 创建的:
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]。
在网上我找到了一些矩阵的例子,所以我尝试做同样的事情,起初只选择一个嵌套列表的列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"]))
}
最后,到目前为止,这似乎奏效了。但是这样每次我想选择列时我都必须建立一个循环。没有直接的方法吗?
谢谢你的帮助。