#r #sequence
#r #последовательность
Вопрос:
У меня есть небольшой вопрос относительно последовательности и each
:
vect1 <- c(4, 5, 10, 3, 1)
Я хочу реплицироваться с этим вектором как с каждым таким, чтобы первое число реплицировалось 4, второе 5, третье 10, четвертое 3 и пятое равнялось 1.
rep(1:5, each = vect1)
[1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5
Warning message:
In rep(1:5, each = vect1) : first element used of 'each' argument
rep(1:5, each = c(4, 5, 10, 3, 1))
[1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5
Warning message:
In rep(1:5, each = c(4, 5, 10, 3, 1)) :
first element used of 'each' argument
Я знаю, что это неправильное использование каждого.
Комментарии:
1.
rep(vect1, vect1)
дает хороший взгляд на это.2. to_rep <- 1:5; unlist(sapply(to_rep, function(x) rep(x, vect1[который(to_rep == x)])))
Ответ №1:
rep(1:5, vect1)
Если у вас есть вопросы о том, как работать с функциями в R, попробуйте
?function
где «функция» — это любая функция, о которой вы хотите знать. Из ?rep
вы бы прочитали:
‘умножает’ целочисленный вектор, задающий (неотрицательное) количество раз для повторения каждого элемента, если длина равна length(x), или для повторения всего вектора, если длина равна 1. Отрицательные значения или NA являются ошибкой.