4
如何在给定数据帧的列数很多的情况下,在R中以优雅的方式产生秩相关矩阵?我无法找到一个内置的功能,所以我试图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
但是这似乎相当详细和丑陋。我在想一定有更好的办法 - 如果是的话?
您的列表/数据框问题可以通过使用'sapply'来代替,最有可能的。 – joran
@joran非常感谢您对sapply的支持,它说它是lapply的简化版本,特别是将结果作为矩阵返回,如果可以的话。 – TooTone