2

我有一个深度等于 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

...

4

1 回答 1

2

下面的代码能解决你的问题吗?

lapply(my.list, sapply, head, 1)

为每个条目提供每个向量的第一个元素my.list

$a
a1 a2 
 1 11 

$b
b1 b2 
21 31 

$c
c1 c2 
41 51 
于 2013-05-14T11:49:30.600 回答