在R中的表中查找最高值

时间:2015-03-11 17:31:14

标签: r sorting

我想知道如何在表中找到给出最高值的变量对。

例如,我有这个文件“mydata”有5个数字列。如果我运行cor(mydata),它会显示所有可能的相关性。我想知道那些高度相关的配对。我尝试使用sort(cor(mydata)),但可以理解的是,这给了我一个有序值的向量。那我怎么知道哪一对对某个值负责呢?

PS:我不知道如何插入示例,我尝试发布图片但没有必要的点¬¬

假设我有一个包含2个变量A和B的表,那么排序的输出将是:

[1] 0.5 0.5 1.0 1.0

在这种情况下,很容易知道0.5来自A和B对,但是如果涉及2个以上的变量,我怎么知道呢?

1 个答案:

答案 0 :(得分:0)

我认为which(..., arr.ind = TRUE)会有所帮助。

which可以将矢量,矩阵或数组作为参数。默认情况下(arr.ind = FALSE),它会将输出简化为向量,但如果您改为设置arr.ind = TRUE(并且数据具有dim属性,即matrix,data.frame或数组),它将尊重源数据的维度,并更准确地告诉您在哪里找到所需的元素。

set.seed(42)
dat <- matrix(rbinom(25, 5, 0.5), ncol = 5)
which(dat > 3, arr.ind = TRUE)
##       row col
##  [1,]   1   1
##  [2,]   2   1
##  [3,]   4   1
##  [4,]   3   3
##  [5,]   1   4
##  [6,]   2   4
##  [7,]   1   5
##  [8,]   3   5
##  [9,]   4   5