简体   繁体   English

如何每3个索引对R中的列表进行子集化?

[英]How do I subset a list in R by every 3 indices?

I have a list which has 500 elements, but I want to get every 3rd element and save it to a variable. 我有一个包含500个元素的list ,但是我想获取每个第3个元素并将其保存到变量中。 So I'd want list[1] , list[4] , list[7] , list[10] and etc saved to one variable. 所以我想将list[1]list[4]list[7]list[10]等保存到一个变量中。

I tried sub.list <- list[1:500, by = 3] but this doesn't work. 我尝试了sub.list <- list[1:500, by = 3]但这不起作用。

L <- as.list(1:500) # create a list

L[seq(1, length(L), 3)]
# or, use recycling
L[c(TRUE, FALSE, FALSE)]  

尝试这个:

   sub.list<-myList[seq_along(myList)%%3==1]

You can also use Filter: 您还可以使用过滤器:

L <- as.list(1:500) # create a list
Filter(function(i) {i %% 3 == 1},seq_along(L))

But won't work if you have NA's. 但是,如果您有NA,就行不通。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM