使用mapply分别用ggplot绘制多个直方图

Using mapply to plot multiple histograms with ggplot separately

我想为来自不同数据集的多个连续变量绘制直方图。我为 ggplot 直方图创建了一个函数:

library(ggplot2)

# two parameters
FU <- function(dat, var){
  ggplot(data = dat, aes_string(var)) +
    geom_histogram(aes(y=..density..), bins = 20)}

FU(diamonds, "y")

现在我定义了一个包含我的连续变量的列表,并想将其应用于钻石数据集:

vars <- list("x", "y")
lst <- mapply(FU, diamonds, vars)

但这给了我以下错误:

Error: ggplot2 doesn't know how to deal with data of class numeric

mapply 将 FUN 应用于每个 ... 参数的第一个元素。

因此,mapply将输入diamonds的第一个元素。

当查看 length(diamonds) 时,我们可以看到 diamonds 有 10 个元素(10 个变量)。

因此当前代码将函数应用于列表中每个元素的每个菱形变量 c("x", "y")

要正确执行此操作,我担心在这种情况下使用 for 循环是相关的,至少对于数据集而言是这样。