Функция повторения странная ошибка

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

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)))
Другие вопросы по тегам