簡體   English   中英

按 R 中的因子分割的數據幀的相關熱圖

[英]Correlation heatmap for a data frame split by a factor in R

我想在 R 中生成一個熱圖/相關圖。我探索了各種包,例如corrplotggcorrplotpheatmap ,但我發現很難到達我想要的地方。

例如,使用 mtcars,我想生成如下所示的熱圖。 具體來說:

  1. 使用 Spearman 相關性僅將 mpg 與 disp、hp、drat 和 wt 進行比較。
  2. 分別對cyl=4cyl=6cyl=8進行這些比較。
  3. 計算斯皮爾曼 p 值。
  4. 繪制熱圖,其中平鋪顏色代表 Spearman 相關系數 (r),p 值印在每個平鋪上。

與此類似的期望結果: 在此處輸入圖片說明

我將不勝感激。 謝謝你。

您可以使用psych包和圖形包(例如ggplot2pheatmap 首先定義一個自定義函數來獲取 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的熱圖,你有我給予好評。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM