我有一个深度等于2的列表。我想按以下示例所述下标该列表:
my.list<-list(
a=list(
a1=1:10,
a2=11:20),
b=list(
b1=21:30,
b2=31:40),
c=list(
c1=41:50,
c2=51:60)
)
# choose a specific item
my.list[[2]][[2]][[3]]
# choose all first items from a1,a2,b1,b2,c1,c2
test<-list()
for(i in 1:3)
for (j in 1:2)test[[i]][[j]]<-my.list[[i]][[j]][[1]]
test
Error in `*tmp*`[[i]] : subscript out of bounds
但这不起作用,因为我创建的列表中没有列表。有用的是这样做:
test<-list()
for(i in 1:3)
for (j in 1:2)test[[i]]<-my.list[[i]][[j]][[1]]
然后
test<-list()
for(i in 1:3)
for (j in 1:2)test[[i]][[j]]<-my.list[[i]][[j]][[1]]
test
给出:
[[1]]
[1] 1 11
[[2]]
[1] 21 31
[[3]]
[1] 41 51
...
答案 0 :(得分:2)
以下代码是否解决了您的问题?
lapply(my.list, sapply, head, 1)
为my.list
中的每个条目提供每个向量的第一个元素:
$a
a1 a2
1 11
$b
b1 b2
21 31
$c
c1 c2
41 51