функция rep в R

когда я выполняю:

rep(1:4, rep(4,4))

Я

1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 

, который ожидается. Но затем, когда я пытаюсь исправить длину до 16(что является длиной вывода) следующим образом:

rep(1:4, rep(4,4), length.out = 16)

Я

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

что странно. Я считаю, что обе эти команды должны выполнять одну и ту же функцию. Кто-нибудь может помочь?

спасибо!

2 ответов


С ?rep

‘."out" может быть дано вместо "times", в этом случае " x’ повторяется столько раз, сколько необходимо для создания вектора эта длина. Если обе даны, то длина.выход имеет приоритет и "времена" игнорируются.

rep(1:4,,rep(4,4),length.out=16) выдаст результат, который вы ищете. Более простой способ написать это -rep(1:4,,16,4).