R语言 我想用我自己的函数

i7uaboj4  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(87)

我对R还是个新手,现在我正在尝试创建一个自己的函数,我向它传递一个框架和列名,它会输出一个图。我想做这样的事情,但我想我做错了。假设框架的名称是my_框架,列是Age,并按Species分组。我还希望在这个例子中标题是“age”。然后:

makePlot <- function(X,col1,col2) {
      p1 <- ggplot(X, aes(x = col1, fill = col2, y = col2)) + geom_point(aes(color = col2)) +
      labs(x = 'Label_x', y = 'Label_y', title = col1)
      return(p1)
    }
    make_rainplot(my_dataframe, Age, Species)

字符串
谢谢你,谢谢
我在网上搜索过,但没有找到如何做到这一点的解释。

flvlnr44

flvlnr441#

除了@YBS指出的函数名和调用之间的不匹配之外,你的函数试图评估(这里:找到名为的对象)例如Age没有成功,因为在my_dataframe之外没有这样的对象。
为了能够使用 unquoted 对象名作为参数,就像在tidyverse中使用的那样,你可以延迟求值,例如使用ensym

makePlot2 <- function(X, col1, col2) {
  col1 <- ensym(col1) ## ensym: don't go looking for Age yet
  col2 <- ensym(col2)
  ggplot(X, aes(x = !!col1, ## !!: now try to find Age (within X)
                fill = !!col2, y = !!col2)) +
    geom_point(aes(color = !!col2)) +
    labs(x = 'Label_x', y = 'Label_y', title = col1)
}

字符串

相关问题