将相关表显示为降序列表
当在具有大量变量的时间序列上运行 cor() 时,我得到一个表,其中每个变量都有一行和一列,显示它们之间的相关性。
我如何将此表视为从最相关到最不相关的列表(消除所有 NA 结果和映射回自身的结果(即 A 到 A 的相关性))。我还想将逆(负)结果计算为绝对值,但仍将其显示为负数。
所以期望的输出会是这样的:
A,B,0.98
A,C,0.9
C,R,-0.8
T,Z,0.5
When running cor() on a times series with a lot of variables, I get a table back that has a row and column for each variable, showing the correlation between them.
How can I view this table as a list from most correlated to least correlated (eliminating all NA results and results that map back to themselves (i.e. the correlation of A to A)). I would also like to count inverse (negative) results as absolute values, but still show them as negative.
So the desired output would be something like:
A,B,0.98
A,C,0.9
C,R,-0.8
T,Z,0.5
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是我能想到的多种方法之一。我使用了 reshape 包,因为
melt()
语法对我来说很容易记住,但是melt()
命令可以很容易地使用基本 R 命令来完成:Here's one of many ways I could think to do this. I used the reshape package because the
melt()
syntax was easy for me to remember, but themelt()
command could pretty easily be done with base R commands:使用基 R(其中
cors
是相关矩阵):Using base R (where
cors
is the correlation matrix):将
...
替换为您的相关调用。如果您在关联中遇到很多 NA,也许可以尝试在关联调用中使用
use="complete.obs"
参数。Replace
...
with your correlation call.If you're getting a lot of NA in your correlations, perhaps try using the
use="complete.obs"
argument in your correlation call.