我想在R中生成一个热图/相关图。我探索了各种软件包,例如corrplot
,ggcorrplot
和pheatmap
,但是我发现很难找到它我想要。
作为一个示例,使用mtcars,我想生成如下的热图。具体来说:
cyl=4
,cyl=6
和cyl=8
进行这些比较。我将不胜感激。谢谢。
答案 0 :(得分:1)
您可以使用psych
软件包和图形软件包(例如ggplot2
或pheatmap
)来实现。首先定义一个自定义函数以获取p值,然后使用by
应用该函数。
library(psych)
myfun <- function(df) corr.test(df[, 1], df[, 3:6], method = "spearman", adjust =
"none")$p
dfs <- by(mtcars, mtcars$cyl, myfun)
mat <- do.call(rbind, dfs)
rownames(mat) <- c("cyl = 4", "cyl = 6", "cyl = 8")
library(pheatmap)
pheatmap(mat,
cluster_rows = F,
cluster_cols = F,
display_numbers = T,
show_rownames = T,
show_colnames = T,
number_format = "%.4f")
我还没有尝试完全复制上面的热图,但是您可以阅读?pheatmap
来了解其所有选项。
旁注:如果有人可以通过将purrr
中的适当功能传递到热图的ggplot2
中来完成此操作,则您表示赞成。