【发布时间】:2018-07-02 09:31:12
【问题描述】:
我有一个 n 行 m 列的数据矩阵(在本例中 n=192,m=1142)和一个 nxp (192x114) 的索引矩阵。索引矩阵的每一行都显示了我想从数据矩阵的匹配行中选择的元素的列号。因此,我遇到了这样的情况(带有示例值):
data<-matrix(1:30, nrow=3)
data
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 4 7 10 13 16 19 22 25 28
[2,] 2 5 8 11 14 17 20 23 26 29
[3,] 3 6 9 12 15 18 21 24 27 30
columnindices<-matrix(sample(1:10,size=9, replace=TRUE),nrow=3)
columnindices
[,1] [,2] [,3]
[1,] 8 7 4
[2,] 10 8 10
[3,] 8 10 2
我想使用 in columnindices 矩阵从数据矩阵行中选取值,以便生成的矩阵如下所示
[,1] [,2] [,3]
[1,] 22 19 10
[2,] 29 23 29
[3,] 24 30 6
我尝试使用 for 循环:
result<-0
for(i in 1:3) {
result[i]<-data[i,][columnindices[,i]]
print[i]
}
但这并没有显示预期的结果。我想我的问题应该很简单地解决,但不幸的是,无论工作多少小时和多次搜索,我仍然无法解决它(我是菜鸟)。非常感谢您的帮助!
【问题讨论】:
-
你能解释一下
columnindices背后的原因吗?你可以试试columnindices<-matrix(sample(6:30,size=9, replace=TRUE),nrow=3) -
这里形成的 columnindices 矩阵只是一个例子,实际上我有一个特定的列索引矩阵来显示特定元素的列。
标签: r matrix subset indices picking