【发布时间】:2016-05-12 12:33:44
【问题描述】:
我有一个矩阵:
x = rbind(1:5, 6:10)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
我想根据索引为每一列选择不同的行。例如,我可能想要一个看起来像的新向量
[1] 1 2 8 4 10
通过在适当的列中选择行c(1,1,2,1,2)。我可以这样做:
diag(x[c(1,1,2,1,2),])
[1] 1 2 8 4 10
但那是内存效率低下,因为它创建了这个矩阵:
x[c(1,1,2,1,2),]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 1 2 3 4 5
[3,] 6 7 8 9 10
[4,] 1 2 3 4 5
[5,] 6 7 8 9 10
鉴于一个真实的数据集和多次迭代,我担心一个严重的性能问题。如何有效地根据我的索引提取相同的值?
【问题讨论】:
标签: r performance subset