1

我在下面有一个序列,其模式不会改变。我可以创建一个向量来表示此模式的缺失变量(如下)。但我似乎无法想出一种方法将下面的这个特定序列打印为向量。如何创建一个显示以下序列但停在特定行(模式中的最后一行)而不是 51 的向量?谢谢

bad <- seq(1,51,by=3)

2,3,5,6,8,9,11,12,14,15,17,18,20,21,23,24,26,27,29,30,32,33,35,36,38,39,41,42,44,45,47,48,50,51
4

4 回答 4

3

我能想到的最直接的方法是使用逻辑向量的“回收”:

(1:51)[c(FALSE, TRUE, TRUE)]
#  [1]  2  3  5  6  8  9 11 12 14 15 17 18 20 21 23 24 26 27 29 30 32 33 35 36 38 39
# [27] 41 42 44 45 47 48 50 51
于 2013-12-04T15:31:17.273 回答
2
> bad <- 2:51
> bad[!bad %% 3 == 1]
 [1]  2  3  5  6  8  9 11 12 14 15 17 18 20 21 23 24 26 27 29 30 32 33 35 36 38 39 41 42 44 45 47 48 50 51
于 2013-12-04T14:34:27.890 回答
1
a = 2:51
b = seq(1, 51, by=3)
setdiff(a,b)
于 2013-12-04T14:37:32.847 回答
1
cumsum(rep(c(2,1), 51/3))

不过可能效率低下。

于 2013-12-04T14:43:52.923 回答