假设我有两个长度相同(例如1000)的数组,array1
和array2
,看起来像
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个连续项。
答案 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)])}))