我想创建一个 1:85 的序列,但不包括 seq(1,85,5) 中的数字。所以像这样:
2 3 4 5 7 8 9 10 12 13 etc..
在 R 中执行此操作的有效方法是什么?
非常感谢!
使用setdiff
:
setdiff(1:85,seq(1,85,5))
[1] 2 3 4 5 7 8 9 10 12 ...
如果您要排除的数字不能一概而论,@HongOoi 或@James 的答案是可行的方法。但如果它们可以通过一些数学测试来描述,Filter
会更有效率。
Filter(function(x) x %% 5 != 1, 1:85)
(1:85)[-seq(1, 85, 5)]
还是太明显/效率低下?
尝试这个:
n <- 85
setdiff(1:n, c(1,85,5))