rep () с каждым равен вектору

#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 являются ошибкой.