Вопрос

I Have a sequence below that has a pattern that does not change. I can create a vector to represent the missing variables to this pattern(below). But I can't seem to figure out a way to print this specific sequence below as a vector. How would one create a vector that shows the sequence below but stops at a specific row(the last row in the pattern), instead of 51? Thanks

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
Это было полезно?

Решение 3

cumsum(rep(c(2,1), 51/3))

probably inefficient though.

Другие советы

The most straightforward way I can think of is to use "recycling" of a logical vector:

(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
> 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
a = 2:51
b = seq(1, 51, by=3)
setdiff(a,b)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top