当在具有大量变量的时间序列上运行cor()时,我得到一个表,其中每个变量都有一行和一列,显示它们之间的相关性.
如何将此表视为从最相关到最不相关的列表(消除所有NA结果和映射回自身的结果(即A与A的相关性)).我还想将反(负)结果计为绝对值,但仍将其显示为负值.
所以期望的输出将是这样的:
A,B,0.98
A,C,0.9
C,R,-0.8
T,Z,0.5
Run Code Online (Sandbox Code Playgroud) 我有一个相等行和列的数据帧/矩阵.我想只提取上三角或下三角.
x<-data.frame(matrix(1:25,nrow=5))
colnames(x)<-LETTERS[1:5]
rownames(x)<-LETTERS[1:5]
x[upper.tri(x,diag=F)]
Run Code Online (Sandbox Code Playgroud)
从这个结果来看,不可能说出值来自列和行的组合.所以,我想在结果中有行和列属性.像这样的东西:
Col Row Val
B A 6
C A 11
C B 12
...
Run Code Online (Sandbox Code Playgroud)
我需要为一个大的相关矩阵做这个.谢谢.
我有一个相关矩阵,我把它放在一个数据框中,如下所示:
row | var1 | var2 | cor
1 | A | B | 0.6
2 | B | A | 0.6
3 | A | C | 0.4
4 | C | A | 0.4
Run Code Online (Sandbox Code Playgroud)
这些结果每行复制到 2 行,同时包含“var1”和“var2”。我只需要一个,最好先使用较低的变量(例如第 1 行和第 3 行)。
我一直在玩 dplyr 两个小时并阅读旧线程,但没有找到我需要的东西。
# get correlation of every concept versus every concept
data.cor <- data.jobs %>%
select(-y,-X) %>%
as.matrix %>%
cor %>%
as.data.frame %>%
rownames_to_column(var = 'var1') %>%
gather(var2, value, -var1)
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像这样:
row | var1 | var2 …Run Code Online (Sandbox Code Playgroud)