2013-12-04 2 views
1

У меня есть последовательность ниже, у которой есть шаблон, который не изменяется. Я могу создать вектор для представления недостающих переменных в этом шаблоне (см. Ниже). Но я не могу понять, как напечатать эту конкретную последовательность ниже как вектор. Как создать вектор, который показывает последовательность ниже, но останавливается в определенной строке (последняя строка в шаблоне) вместо 51? БлагодаряКак создать обратную последовательность в R

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 
+1

Это не ясно, что именно вы хотите достичь. Вы просто хотите заменить значение 'to' в' seq'? –

+0

Я хочу, чтобы вектор, который печатает вышеупомянутый seq. я бы использовал nrow(), чтобы подставить 51. У меня соскабливается иногда 51 строка иногда 49 иногда 53 ... так что я хочу что-то вроде .... bad <- seq (1, nrow (x) , by = 3) – MostlyRquestions

ответ

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

вероятно неэффективным, хотя.

+0

это отлично работает. спасибо – MostlyRquestions

+0

все предлагаемые решения работают, но этот, вероятно, самый медленный – baptiste

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 
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 
+0

+1, что намного опережает – baptiste

Смежные вопросы