У меня есть функция f1 на фрейме данных, которая вызывает другую функцию f2, а затем обрабатывает выходные данные f2.f2 работает в интерактивном режиме самостоятельно, но как мне заставить его работать при вызове f1?
f1 <- function(x, y) {
z <- f2(x, y)
# do stuff with z
w <- z
return(w)
}
f2 использует subset () для отмены выбора определенных столбцов:
f2 <- function(x, y) {
y <- substitute(y)
subset(x, select = -eval(y))
}
Как видите, f2 работает в интерактивном режиме.Меня это не волнует, но я хочу, чтобы оно работало при вызове f1.
# This works fine interactively (but I don't care about that)
f2(mtcars,mpg)
# This is what I want to work
f1(mtcars,mpg)
Error in -eval(y) : invalid argument to unary operator
Я бы предпочел не изменять f1 или его аргументы.Как мне переписать f2 так, чтобы он работал внутри f1?
Вот аналогичный вопрос с решениями, которые у меня возникают проблемы при применении к моему контексту: R: передача выражения во внутреннюю функцию