Функция повторения странная ошибка
Когда я выполняю:
a <- seq(1,1.5,0.1)
b <- c(1,1.1,1.4,1.5)
x <- rep(c(a,b),times=c(2,1))
Ошибка в rep(c(a, b), c(2, 1)): неверный аргумент 'times'
Зачем?
2 ответа
Решение
Когда мы объединяем (c
) два вектора, он становится одним вектором. Если идея состоит в том, чтобы повторить "а" на 2 и "б" на 1, мы помещаем их в list
и использовать rep
, На выходе будет list
, который может быть unlist
Эд, чтобы получить vector
,
unlist(rep(list(a,b), c(2,1)))
Отмеченный ответ уже идеален: здесь альтернативное использование mapply
unlist(mapply(function(x,n)rep(x,n),list(a,b),c(2,1)))