假设我有
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位之后的数字序列。
有什么建议吗?
答案 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