我使用以下代码找到了数据的相关矩阵:
file_20 <- read.csv("C:/Desktop/ex.csv")
file_20
cor (file_20[,1:19], file_20[1:19], method ="spearman")
但是现在我如何对相关矩阵进行排名?有什么建议
注意:我有19列和20行(包括标题),我的目的是根据spearman等级相关性对列进行排名。
我试过
cor(rank(file_20 [,1:19]),rank(file_20 [1:19]),method =“spearman”)
显示输出为
[1] 1
是否可以选择让我的所有专栏排名?
请帮忙!
答案 0 :(得分:1)
- 使用cor()的kendall
方法参数代替:
df <- data.frame(x=c(1,2,3,4,5), y=c(5,4,3,2,1))
cor(df, method="kendall")
x y
x 1 -1
y -1 1
R>
From help(cor):
对于cor()
,如果方法为"kendall"
或"spearman
“,则Kendall's tau
或Spearman's rho statistic
用于估算基于排名的关联度量。如果数据不一定来自双变量正态分布,则更加健壮并且已被推荐。对于cov(
),非Pearson方法是不寻常的但是为了完整性而可用。注意“spearman”基本上计算cor(R(x), R(y)) (or cov(.,.))
其中R(u) := rank(u, na.last="keep")
。在缺少值的情况下,根据使用的值计算排名,或者基于完整的观察结果,或者基于每对重新排名的成对完整性。