R 用相同的索引值将列表的所有元素子集

R 用相同的索引值将列表的所有元素子集,r,list,subset,R,List,Subset,可能很琐碎,但我没有找到解决办法。我试图用相同的索引值来子集列表中的所有元素 假设我的清单是: mylist=list(seq(22,30,2),c(1:5),rep(8,5)) 这让我 [[1]] [1] 22 24 26 28 30 [[2]] [1] 1 2 3 4 5 [[3]] [1] 8 8 8 8 8 我试图只提取值[2:4]并删除元素的其他值,因此我得到一个如下的列表 [[1]] [1] 24 26 28 [[2]] [1] 2 3 4 [[3]] [1] 8 8

可能很琐碎,但我没有找到解决办法。我试图用相同的索引值来子集列表中的所有元素

假设我的清单是:
mylist=list(seq(22,30,2),c(1:5),rep(8,5))

这让我

[[1]]
[1] 22 24 26 28 30

[[2]]
[1] 1 2 3 4 5

[[3]]
[1] 8 8 8 8 8
我试图只提取值[2:4]并删除元素的其他值,因此我得到一个如下的列表

[[1]]
[1]  24 26 28 

[[2]]
[1] 2 3 4 

[[3]]
[1] 8 8 8 
我试过两种方法的结合

sub=foreach(i=c(1:3))%do%{
lapply(mylist,函数(x){mylist[[i]][c(2:4)])
}

然而,我最终得到了三重复制

[[1]]
[[1]][[1]]
[1] 24 26 28

[[1]][[2]]
[1] 24 26 28

[[1]][[3]]
[1] 24 26 28


[[2]]
[[2]][[1]]
[1] 2 3 4

[[2]][[2]]
 [1] 2 3 4

[[2]][[3]]
[1] 2 3 4


[[3]]
[[3]][[1]]
[1] 8 8 8

[[3]][[2]]
[1] 8 8 8

[[3]][[3]]
[1] 8 8 8

我哪里做错了?

归功于@Richard Scriven

解决方案:

lapply(mylist, "[", 2:4)