9

我想创建一个 1:85 的序列,但不包括 seq(1,85,5) 中的数字。所以像这样:

2 3 4 5 7 8 9 10 12 13 etc..

在 R 中执行此操作的有效方法是什么?

非常感谢!

4

4 回答 4

14

使用setdiff

setdiff(1:85,seq(1,85,5))
 [1]  2  3  4  5  7  8  9 10 12 ...
于 2013-06-26T12:14:35.293 回答
6

如果您要排除的数字不能一概而论,@HongOoi 或@James 的答案是可行的方法。但如果它们可以通过一些数学测试来描述,Filter会更有效率。

Filter(function(x) x %% 5 != 1, 1:85)
于 2013-06-26T12:33:23.813 回答
5
(1:85)[-seq(1, 85, 5)]

还是太明显/效率低下?

于 2013-06-26T12:14:56.767 回答
0

尝试这个:

n <- 85
setdiff(1:n, c(1,85,5))
于 2020-10-05T19:55:38.733 回答