我想知道如何在表中找到给出最高值的变量对。
例如,我有这个文件“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个以上的变量,我怎么知道呢?
答案 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