You can use
myfn <- function(xname, yname) {
data(iris)
inner_join(iris, iris, by=setNames(yname, xname))
}
The suggested syntax in the ?inner_join
documentation of
by = c("a"="b") # same as by = c(a="b")
is slightly misleading because both those values aren’t proper character values. You’re actually created a named character vector. To dynamically set the values to the left of the equals sign is different from those on the right. You can use setNames()
to set the names of the vector dynamically.