我想为每一行使用不同的(但是一列)列化矩阵。那么适当的应用可以做到这一点吗?但也可能聪明的子集可以工作,但我还没有找到解决方案。计算时间是一个问题 - 我有一个带有for循环的解决方案,但是在RAM中加载矩阵几次太慢了。 这是一个例子:
给出矩阵M和向量v,
M<-matrix(1:15,nrow=5,ncol=3)
[,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15
v<-c(3,1,1,2,1)
,解决方案应为:
(11,2,3,9,5)
答案 0 :(得分:5)
我们可以尝试行/列索引
M[cbind(1:nrow(M), v)]
#[1] 11 2 3 9 5
答案 1 :(得分:3)
只是为了好玩,这是使用矢量索引的另一种解决方案
t(M)[v + (seq_len(nrow(M)) - 1) * ncol(M)]
# [1] 11 2 3 9 5