gpt4 book ai didi

r - 名称相关矩阵

转载 作者:行者123 更新时间:2023-12-04 09:24:17 25 4
gpt4 key购买 nike

我有一个大约 1000 行 X 500 变量的矩阵,我试图用名称而不是数字为这些变量建立相关矩阵,所以结果应该是这样的

variable1    variable2    variable3    variable4 ...
mrv1 mrv2 mrv3 mrv4 ...
smrv1 smrv2 smrv3 smrv4 ...
. . . .
. . . .
. . . .

其中mrv1 = 与variable1 最相关的变量,smrv1 = 第二个最相关的变量,依此类推。

我实际上已经制作了相关矩阵,但是使用了一个 for 循环和一个非常复杂的命令(可能是有史以来最糟糕的命令,但它确实有效!)。我期待通过正确的命令来建立它,这是我现在正在使用的命令。
mydata <- read.csv("location", header=TRUE, sep=",")
lgn <- length(mydata)
crm <- cor(mydata)

k <- crm[,1]
K <- data.frame(rev(sort(k)))
A <- data.frame(rownames(K))

for (x in 2:lgn){
k <- crm[,x]
K <- data.frame(rev(sort(k)))
B <- data.frame(rownames(K))
A <- cbind(A,B)
}

有没有更简单、可靠的命令的想法?

谢谢,

最佳答案

这个例子适合你想要的吗?

W <- rnorm( 10 )
X <- rnorm( 10 )
Y <- rnorm( 10 )
Z <- rnorm( 10 )

df <- round( cor( cbind( W , X , Y , Z ) ) , 2 )
df
# W X Y Z
# W 1.00 -0.50 -0.36 -0.27
# X -0.50 1.00 -0.42 -0.02
# Y -0.36 -0.42 1.00 0.17
# Z -0.27 -0.02 0.17 1.00


apply( df , 2 , FUN = function(x){ j <- rev(order(x)); y <- names(x)[j] } )
# W X Y Z
# [1,] "W" "X" "Y" "Z"
# [2,] "Z" "Z" "Z" "Y"
# [3,] "Y" "Y" "W" "X"
# [4,] "X" "W" "X" "W"


#And use abs() if you don't care about the direction of the correlation (negative or postive) just the magnitude
apply( df , 2 , FUN = function(x){ j <- rev(order( abs(x) )); y <- names(x)[j] } )
# W X Y Z
# [1,] "W" "X" "Y" "Z"
# [2,] "X" "W" "X" "W"
# [3,] "Y" "Y" "W" "Y"
# [4,] "Z" "Z" "Z" "X"

关于r - 名称相关矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com