R 将相关表显示为降序列表

R 将相关表显示为降序列表,r,correlation,R,Correlation,当对一个包含很多变量的时间序列运行cor()时,我得到一个表,其中每个变量都有一行和一列,显示了它们之间的相关性 如何将此表视为从相关性最高到相关性最低的列表(消除所有NA结果和映射回自身的结果(即a到a的相关性))。我还想将反向(负)结果计算为绝对值,但仍然显示为负 因此,所需的输出类似于: A,B,0.98 A,C,0.9 C,R,-0.8 T,Z,0.5 这是我能想到的许多方法之一。我使用重塑软件包是因为melt()语法对我来说很容易记住,但是melt()命令可以很容易地用基本R命令完成

当对一个包含很多变量的时间序列运行cor()时,我得到一个表,其中每个变量都有一行和一列,显示了它们之间的相关性

如何将此表视为从相关性最高到相关性最低的列表(消除所有NA结果和映射回自身的结果(即a到a的相关性))。我还想将反向(负)结果计算为绝对值,但仍然显示为负

因此,所需的输出类似于:

A,B,0.98
A,C,0.9
C,R,-0.8
T,Z,0.5

这是我能想到的许多方法之一。我使用重塑软件包是因为
melt()
语法对我来说很容易记住,但是
melt()
命令可以很容易地用基本R命令完成:

require(reshape)
## set up dummy data
a <- rnorm(100)
b <- a + (rnorm(100, 0, 2))
c <- a + b + (rnorm(100)/10)
df <- data.frame(a, b, c)
c <- cor(df)
## c is the correlations matrix

## keep only the lower triangle by 
## filling upper with NA
c[upper.tri(c, diag=TRUE)] <- NA

m <- melt(c)

## sort by descending absolute correlation
m <- m[order(- abs(m$value)), ]

## omit the NA values
dfOut <- na.omit(m)

## if you really want a list and not a data.frame
listOut <- split(dfOut, 1:nrow(dfOut))
require(重塑)
##设置虚拟数据
a使用基数R(其中
cors
为相关矩阵):


up用相关调用替换

library(reshape)
x <- subset(melt(cor(...)), value != 1 | value != NA)
x <- x[with(x, order(-abs(x$value))),]
库(重塑)
x
library(reshape)
x <- subset(melt(cor(...)), value != 1 | value != NA)
x <- x[with(x, order(-abs(x$value))),]