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