合并R中的两个数组,交替元素

时间:2018-11-26 11:36:44

标签: arrays r merge

假设我有两个长度相同(例如1000)的数组,array1array2,看起来像

   array 1= 0.7828479 0.7782587 0.697296 0.7847533 0.7963145 0.7742886 0.6367928 ...
   array 2= 0.5324373 -0.5765472 -0.5020422 -0.3265736 -0.09438474 0.1368133 ...

,我想将它们合并为一个新数组,如下所示:

   first 20 elements of array 1 (i.e. array1[1], array1[2],...,array1[20])
   first 10 elements of array 2 (i.e. array2[1], array2[2],...,array2[10])
   second 20 elements of array 1 (i.e. array1[21], array1[2],...,array1[40])
   second 10 elements of array 2 (i.e. array2[11], array2[2],...,array2[20])

,依此类推,直到其中一个数组的所有元素用完为止。然后array1将始终首先用完,并且每次生成的向量每次分别具有数组1和2中的20和10个连续项。

1 个答案:

答案 0 :(得分:1)

似乎您然后使用了向量。这样行吗? (我使用一些随机初始化的向量)。假设向量的大小是您每次要取的元素数的倍数。

vec1 <- rnorm(100)
vec2 <- rnorm(100)
step1 <- 20
step2 <- 10
as.vector(sapply(0 : (length(vec1) / step1 - 1), function(idx){
  c(vec1[1 : step1 + (idx * step1)], vec2[1 : step2 + (idx * step2)])}))