给定具有多列的数据框,如何在 R 中以优雅的方式生成秩相关矩阵?我找不到内置函数,所以我尝试了
> test=data.frame(x=c(1,2,3,4,5), y=c(5,4,3,2,1))
> cor(rank(test))
(为简单起见,只有 2 列,真实数据有 5 列)
> Error in cor(rank(test)) : supply both 'x' and 'y' or a matrix-like 'x'
我认为这是因为rank
需要一个向量。所以我尝试了
> cor(lapply(test,rank))
将排名应用于数据框中的每一列,将数据框视为列表,这给出了错误
> supply both 'x' and 'y' or a matrix-like 'x'
我终于得到了一些可以使用的东西
> cor(data.frame(lapply(test,rank)))
x y
x 1 -1
y -1 1
然而,这似乎非常冗长和丑陋。我在想一定有更好的方法——如果是这样呢?