从向量的起始元素中添加固定数量后检索出现的元素

时间:2019-05-08 23:53:38

标签: r

假设我有

temp <- c(94, 95, 108, 110, 119, 122, 130, 137, 143, 149, 151)

我需要获取将7的倍数添加到起始元素(94)之后出现的所有元素。

所以,人们应该得到类似下面的东西

94, 108, 122, 143

我尝试了以下操作:

b <- temp[seq(1, length(temp), 7)]
94 137

这实际上是不正确的,因为它会生成在列表中排在第7位之后的数字序列。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

另一种选择是检查减去初始值后的模数是否等于零:

temp[(temp - 94) %% 7 == 0]
#[1]  94 108 122 143

答案 1 :(得分:1)

我们可以在生成序列后使用intersect

intersect(seq(temp[1], max(temp), by = 7), temp)
#[1]  94 108 122 143