使用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 循环是相关的,至少对于数据集而言是这样。
我想为来自不同数据集的多个连续变量绘制直方图。我为 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 循环是相关的,至少对于数据集而言是这样。