2013-06-26 73 views
4

我想創建的1:85的序列,但SEQ(1,85,5),不包括數字。所以像這樣:創建數字序列,排除某些數字

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

什麼將是一個有效的方式來做到這一點在R?

非常感謝!

回答

5

使用setdiff

setdiff(1:85,seq(1,85,5)) 
[1] 2 3 4 5 7 8 9 10 12 ... 
+0

它不工作,看你的輸出,還有一個5 – eyanquenb

+1

@edwardyanquen看序列的'輸出(1,85,5)'。 OP希望排除這些數字。 – Roland

+0

謝謝,我不知道setdiff()之前,它似乎真的很有用。 – Rob

3
(1:85)[-seq(1, 85, 5)] 

或者是太明顯/低效?

+1

沒有這麼明顯明顯,我..謝謝,這正是我一直在尋找。 – Rob

+0

我也許應該提到的是,如果你的初始序列的形式'1,2,3,... N'的這一招只適用。它是根據它們在序列中的位置去除元素,而不是根據它們的價值。詹姆斯的答案無論開始的順序如何都適用。 –

5

如果你要排除的號碼不能一概而論,@HongOoi或@詹姆斯的答案是要走的路。但是,如果他們可以通過一些數學測試描述,Filter會更有效。

Filter(function(x) x %% 5 != 1, 1:85)