【发布时间】:2019-10-20 21:44:48
【问题描述】:
我有一个成对的相关数据框,看起来像这样(这只是头部):
var1 var2 corr
1 OTU3978 UniRef90_A0A010P3Z8 0.846
2 OTU4011 UniRef90_A0A010P3Z8 0.855
3 OTU4929 UniRef90_A0A010P3Z8 0.829
4 OTU4317 UniRef90_A0A011P550 0.850
5 OTU4816 UniRef90_A0A011P550 0.807
6 OTU3902 UniRef90_A0A011QPQ2 0.836
7 OTU3339 UniRef90_A0A011RKI6 0.835
8 OTU1359 UniRef90_A0A011RLA7 0.801
9 OTU2085 UniRef90_A0A011RLA7 0.843
10 OTU3542 UniRef90_A0A011RLA7 0.866
我想从此数据框中获取相关矩阵 我试过了:
library(igraph)
G <- graph.data.frame(df,directed=FALSE)
A <-as_adjacency_matrix(G,names=TRUE,sparse=FALSE,attr="corr",type='lower')
但是没有用。
【问题讨论】:
-
实际上,它并没有返回相关矩阵。根据我在帖子中显示的 data.frame,我应该得到很多 NA(因为并非所有变量都相互关联)。
-
但是你的想法不是你试图从 $corr 向量中得到一个相关矩阵吗?
-
真的!但实际上,我不知道我是否应该得到一个 10 行 (var1) x 10 列 (var2) 矩阵?还是 15 x 15 矩阵(因为我的 data.frame 中有 15 个不同的变量)?在这两种情况下,我都会得到很多 NA 并将其转换为 0 ?
-
所以你有比这两个更多的变量?它们之间是否也有相关性数据?
-
其实,
nrow(df)=1105854。但并非所有变量都彼此不相关(例如,OTU3978可能仅与UniRef90_A0A010P3Z8相关,但UniRef90_A0A010P3Z8可能与此 OTU 或许多其他 OTU 相关,反之亦然) .而var1只对应OTUXXX,var2对应UniRef90_XXX
标签: r dataframe matrix igraph correlation