【发布时间】:2016-07-19 14:37:38
【问题描述】:
我有这个矩阵:
mat=matrix(c(1,1,1,2,2,2,3,4,
4,4,4,4,4,3,5,6,
3,3,5,5,6,8,0,9,
1,1,1,1,1,4,5,6),nrow=4,byrow=TRUE)
print(mat)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 1 1 2 2 2 3 4
[2,] 4 4 4 4 4 3 5 6
[3,] 3 3 5 5 6 8 0 9
[4,] 1 1 1 1 1 4 5 6
以及我想要应用我的函数的行的索引的子集:
subset=c(2,4)
我想在矩阵“mat”中添加一个新列,该列仅包含我指定的子集,该行中具有最大频率的对象的值。
在这种情况下:
- 对于第 1 行,我想在新列中有一个空单元格,
- 对于第 2 行,我希望在新列中有值“4”,
- 对于第 3 行,我想在新列中有一个空单元格,
- 对于第 4 行,我希望在新列中具有值“1”。
编辑: 感谢答案中的代码! 现在我应该用其他值替换 NA 值: 我有另一个矩阵:
mat2=matrix(c(24,1,3,2, 4,4,4,4, 3,2,2,5, 1,3,5,1),nrow=4,byrow=TRUE)
[,1] [,2] [,3] [,4]
[1,] 24 1 3 2
[2,] 4 4 4 4
[3,] 3 2 2 5
[4,] 1 3 5 1
和子集:
subset=c(1,3)
我想用具有最大值的行的值的列名替换矩阵的NA(第一个子集中的剩余行)。
在这种情况下,第一行是“1”,第三行是“4”。
【问题讨论】:
标签: r matrix max subset frequency