我知道有类似的问题,但我找不到我的问题的答案。我试图排列矩阵中的元素,然后提取5个最高元素的数据。R中排名和计数矩阵元素
这是我的尝试。
set.seed(20)
d<-matrix(rnorm(100),nrow=10,ncol=10)
start<-d[1,1]
for (i in 1:10) {
for (j in 1:10) {
if (start < d[i,j])
{high<-d[i,j]
rowind<-i
colind<-j
}
}
}
虽然这给了我最高的元素的数据,包括行数和列数,我不能想办法做同样从2排至5元我也试过
rank(d, ties.method="max")
但它没有帮助,因为它只是吐出了矢量格式的排名。 我最终想要的是一个数据框(或任何类型的表),其中包含 排名,列名,行名,以及矩阵中最高5个元素的数据(数字)。
编辑
set.seed(20)
d<-matrix(rnorm(100),nrow=10,ncol=10)
d[1,2]<-5
d[2,1]<-5
d[1,3]<-4
d[3,1]<-4
感谢您的答案。那些完美的工作是为了我的目的,但是因为我正在为关联图表运行此代码 - 其中每个对都会有重复的数字 - 我只想为排名目的计算两个数字中的一个。有没有办法做到这一点?谢谢。
它是按行还是列? – akrun
请在制作随机示例之前使用set.seed。使人们更容易验证和比较答案。 – Frank
@Frank感谢您的建议。只是做了改变。 – sh2657