【发布时间】:2017-03-26 16:01:42
【问题描述】:
我有一个相关性数据框,我试图只播种 10% 以上的相关性
然后我想使用corrr 包来绘制它
我获取我的数据集的相关性,然后过滤到绝对值 >.1 但它在网络图段上失败
UseMethod("network_plot") 中的错误: 没有适用于“network_plot”的方法应用于“c('tbl_df', 'tbl', 'data.frame')”类的对象
library(tidyverse)
library(corrr)
# Create the Dataframe
mydf <- data.frame(a=sample(rnorm(n = 100,sd = 15),replace=TRUE),
b=sample(rnorm(n = 100,sd = 15),replace=TRUE),
c=sample(rnorm(n = 100,sd = 15),replace=TRUE),
d=sample(rnorm(n = 100,sd = 15),replace=TRUE),
e=sample(rnorm(n = 100,sd = 15),replace=TRUE),
f=sample(rnorm(n = 100,sd = 15),replace=TRUE))
test <- mydf %>%
correlate(method = "spearman") %>%
gather("n", "corr", 2:7, na.rm = TRUE) %>%
filter(abs(corr) > 0.1) %>%
spread(rowname,corr) %>%
network_plot(legend = TRUE)
我在 documentation 的包中看到,您可以指定您希望可视化的相关性,但是即使我要求不包含它们,它似乎仍然会打印标签,这就是为什么我去了聚集/传播路线
network_plot(min_cor = .2, legend = TRUE)
感谢您的宝贵时间
【问题讨论】:
-
您在
correlate调用和network_plot之间的某处丢失了cor_df类。test = mydf %>% ... %>% spread(rowname, corr)也是如此,然后是class(test) = c("cor_df", class(test)),然后是network_plot(test, legend = TRUE)。 -
你应该也可以强制调用
network_plot.cor_df:test = mydf %>% ... %>% corrr:::network_plot.cor_df(legend = TRUE) -
还可以考虑在
corrrGitHub 页面上将其归档为issue,因为应该有一个network_plot.default方法,但似乎没有。 -
另外,我认为您需要
spread(n, corr)而不是spread(rowname, corr)才能使network_plot正常工作。 -
嗨@epi,我改变了传播,但不幸的是它没有工作
标签: r correlation