Чередовать, переплетать или чередовать два вектора

Я хочу чередовать два вектора одинаковой моды и одинаковой длины. Сказать:

a <- rpois(lambda=3,n=5e5)
b <- rpois(lambda=4,n=5e5)

Я хотел бы переплетать или чередовать эти два вектора, чтобы создать вектор, который будет эквивалентноc(a[1],b[1],a[2],b[2],...,a[length(a)],b[length(b)])

Моя первая попытка была такая:

sapply(X=rep.int(c(3,4),times=5e5),FUN=rpois,n=1)

но это требуетrpois быть вызванным гораздо чаще, чем нужно.

Моя лучшая попытка до сих пор состояла в том, чтобы преобразовать это в матрицу и преобразовать обратно в вектор:

d <- c(rbind(rpois(lambda=3,n=5e5),rpois(lambda=4,n=5e5)))
d <- c(rbind(a,b))

Есть ли лучший способ сделать это? Или есть функция в базеR что делает то же самое?

Ответы на вопрос(2)

Ваш ответ на вопрос