0

I'm trying to build a function in which I present as input a dataframe, and two variables within that dataframe. For instance:

mydf <- data.frame(var_a = runif(10),
               var_b = runif(10))

my_fun <- function(df, var1, var2){
output <- (df$var1 - df$var2) / df$var2
return(output)
}

my_fun(mydf, var_a, var_b)

Warning messages:
1: Unknown column 'var1' 
2: Unknown column 'var2' 
3: Unknown column 'var2' 

What am I doing wrong?

EDIT: Trying various other ways:

my_fun <- function(df, var1, var2){
output <- (df[var1] - df[var2]) / df[var2]
return(output)
}

my_fun(mydf, var_a, var_b)
Error in `[.data.frame`(df, var1) : object 'var_a' not found 

my_fun <- function(df, var1, var2){
output <- (df[[var1]] - df[[var2]]) / df[[var2]]
return(output)
}

my_fun(mydf, var_a, var_b)
Error in `[.data.frame`(df, var1) : object 'var_a' not found

Edit2: With quotation marks:

my_fun <- function(df, var1, var2){
output <- (df[["var1"]] - df[["var2"]]) / df[["var2"]]
return(output)
}

 my_fun(mydf, var_a, var_b)
 numeric(0)

my_fun <- function(df, var1, var2){
output <- (df["var1"] - df["var2"]) / df["var2"]
return(output)
}

 my_fun(mydf, var_a, var_b)
 Error in `[.data.frame`(df, "var1") : undefined columns selected 
Phil
  • 7,287
  • 3
  • 36
  • 66

0 Answers0