2014-02-18 3 views
2

Эта строка кода rep(c(0), 2) создаеттиражирование и переборе в R

x 
1 0 
2 0 

Я хотел бы каким-то образом расширить это, таким образом, соответствующий для R, так что я в конечном итоге с чем-то вроде ниже вектора. В принципе, я хотел бы добавить целые числа попарно, как, например:

x 
1 0 
2 0 
3 1 
4 1 
5 2 
6 2 

Я чувствую, что это пример нелюбви АиРа петель, которая имеет непреднамеренный побочный эффект делает простые вещи кажутся незнакомыми и делает меня долго для других инструменты на других языках, например, в Python.

Каков наилучший способ, которым я могу повторять и увеличивать таким образом?

+9

'rep (0: 2, each = 2)'? – Nishanth

+0

'rep' очень мощный и является такой часто используемой функцией, что стоит посмотреть на' example (rep) '. –

ответ

1

Копирование ответа Нишанта, это делает именно то, что вы хотите.

rep(0:2, each=2) 
-2
data.frame(x = unlist(lapply(0:2, rep, 2))) 
+0

Я не понимаю, почему это проголосовало. Хорошо, это не очень эффективный подход, но он дает правильный результат. –

+0

Спасибо за поддержку. Сказать по правде, подход вроде: data.frame (x = sort (rep (0: 2, each = 2))) должен быть более эффективным –

+0

Нет необходимости в 'sort'. –

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