如果有一个向量 x
length(x)
# 100
还有一个向量
a
,它表示 x 的子向量的前导索引:a
# 1, 5, 23, 79
然后我想根据
x
拆分 a
如下:list(x[1:4], x[5:22], x[23:78], x[79:100])
在 R 中有没有一种快速的方法来做到这一点?
最佳答案
前面的两个答案都依赖于制作与原始 x
向量长度相同的用于拆分的列表/向量。在非常长的向量的情况下,这可能效率低下,可以避免:
Map(function(i,j) x[i:j], a, cumsum(diff(c(a, length(x)+1))))
关于r - 按位置分割向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24347245/