R函数:根据工作代码创建的函数中的“找不到对象”

时间:2019-04-22 14:49:54

标签: r

edit:该问题已得到解答,我已经能够使其与Jilber Urbina提供的解决方案一起使用。 get(X)更改可以用ggplot( ... + labs (x= X, y = Y)恢复的轴标签。感谢您的帮助。

我想创建一个简单的函数以可视方式浏览数据集(“数据”)。数据集包含两个变量:“类型”是一个因子,“重量”是数字。这是我开始的工作代码:

library(tidyverse)

data %>% 
 ggplot(aes(type, weight)) +
 geom_boxplot()

这将创建我想要的箱线图。现在,如果我创建一个函数并使用它,则会收到错误消息:

data_box <- function(X,Y) {
 data %>%
 ggplot(aes(X, Y)) + 
 geom_boxplot()
 }

data_box(type, weight)
  

check_factor(.f)中的错误:找不到对象“类型”

非常感谢您在创建一个执行代码所要执行功能的过程中所提供的帮助。

1 个答案:

答案 0 :(得分:0)

基于@ r2evans注释,您可以添加第三个参数data并使用get()来按名称搜索,因此可以在引号内给变量名称:

data_box <- function(X,Y, data) {
  data %>%
    ggplot(aes(get(X), get(Y))) + 
    geom_boxplot()
}

data_box("Subject", "time", Indometh)