如何绘制列表中多个数据框中的特定列?

How to plot specific columns in multiple dataframes in a list?

抱歉这个基本问题。我以为我能解决这个问题,但我真的想不出语法。我对 R 很陌生。希望有人能向我解释如何做到这一点。

我有一个包含数据的数据框列表,我想绘制它们。

df_list <- list(
  `1.3.A` = 
    tibble::tribble(
      ~Person, ~Height, ~Weight,
      "Alex",    175L,     75L,
      "Gerard",    180L,     85L,
      "Clyde",    179L,     79L
    ),
  `2.2.A` = 
    tibble::tribble(
      ~Person, ~Height, ~Weight,
      "Missy",    175L,     75L,
      "Britany",    180L,     85L,
      "Sussie",    179L,     79L
    ), 
  `1.1.B` = 
    tibble::tribble(
      ~Person, ~Height, ~Weight,
      "Luke",    175L,     75L,
      "Alex",    180L,     85L,
      "Haley",    179L,     79L
    )
)

有没有办法使用 ggdensity() 绘制身高和体重列。我正在尝试为每个数据框的每一列(高度和重量)绘制多个密度图,但没有成功。

我试过的一些代码:

make_hist <- function(x){
  ggdensity(data, x)
}
plots <- lapply(df_list, make_hist)

r <- lapply(df_list, function(x) {
  ggdensity(data, x)

我什至尝试过使用 imap,但无法找出 ggdensity 的正确语法并用 imap() 函数或 lapply() 包装它。

对于这个基本问题真的很抱歉,我希望有人能给我解释一下答案。

我们可以遍历 'df_list',为 'Height' 和 'Weight' 创建密度图,然后展平嵌套列表 (do.call(c) 并使用 ggarrange 通过指定 nrowncol

绘制 list 中的元素
library(ggpubr)
plots <- lapply(df_list, function(x) ggdensity(x, c("Height", "Weight")))
plots1 <- do.call(c, plots)
ggarrange(plotlist = plots1, nrow = 3, ncol = 2)

-输出