2
我有等於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
...
是的,我認爲這將有助於我莫名其妙。不過我想知道是否在創建新列表時沒有任何內置的內建功能。 – Johannes 2013-05-14 12:37:18
我覺得'lapply'是你正在尋找的內置函數:它迭代一個列表,創建一個新列表並返回它。參見'lapply' – user1981275 2013-05-14 12:43:17
從你的編輯中我可以看到你想要的結果是一個有三個條目的列表,每個條目都包含一個向量。由於'lapply'返回一個列表,你可以使用'sapply'包裝器來返回一個向量。我將編輯答案。 – user1981275 2013-05-14 12:45:33