Чередовать, переплетать или чередовать два вектора
Я хочу чередовать два вектора одинаковой моды и одинаковой длины. Сказать:
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
что делает то же самое?