我想绘制来自不同数据集的多个连续变量的直方图。我为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
答案 0 :(得分:0)
mapply
将FUN应用于每个...参数的第一个元素。
因此,mapply将把钻石的第一个元素作为输入。
当查看长度(钻石)时,我们可以看到钻石有10个元素(10个变量)。
因此,当前代码将函数应用于列表中每个元素的每个钻石变量c("x", "y")
为了正确地做到这一点,我担心在这种情况下使用for循环是相关的,至少对于数据集而言。