Упрощение редактирования:
Это сводится к следующему:
df = data.frame(a = 1:10)
#example function that takes optional arguments
mymean <- function(x, w = 1, s = 0) { s + mean(w * x) }
summarize_(df, m = "mean(a)")
#> m
#> 1 5.5
summarize_(df, m = "mymean(a)")
#> Error: could not find function "mymean"
В соответствии с `vignette ( "nse" ) summaryize должен быть задан синтаксис формулы при использовании нестандартных функций суммирования.
В конечном счете, я хочу, чтобы иметь возможность summarize_
обертывать такую функцию:
my_summary <- function(df, x, ...) {
summarize_(df,
m = "mean(a)",
wm = "mymean(a, ...)" #gives error
}
#Partial working function
my_summary <- function(df, x, ...) {
summarize_(df,
m = "mean(a)", #works
wm1 = interp(mymean(a), a = as.name(x) #works but doesn't allow ...
wm2 = interp(mymean(a, b),
.values=list(a = as.name(x),
b = quote(...)), #doesn't work
wm3 = interp(mymean(a, ...), a = as.name(x) #doesn't work
}
Рабочая функция позволила бы мне позвонить:
my_summary(df, a)
#> 5.5
my_summary(df, a, w=5, s=2)
#> 29.5