データフレームと関数の名前を引数として取る関数を作成しようとしています。標準の R 構文で関数を記述しようとすると、 http: //adv-r.had.co.nz/Computing-on-the-language.html で @hadley が推奨するように、eval
andを使用して良い結果を得ることができます。substitute
> df <- data.frame(y = 1:10)
> f <- function(data, x) {
+ out <- mean(eval(expr = substitute(x), envir = data))
+ return(out)
+ }
> f(data = df, x = y)
[1] 5.5
ここで、演算子を使用して同じ関数を記述しようとすると、機能し%>%
ません:
> df <- data.frame(y = 1:10)
> f <- function(data, x) {
+ data %>%
+ eval(expr = substitute(x), envir = .) %>%
+ mean()
+ }
> f(data = df, x = y)
Show Traceback
Rerun with Debug
Error in eval(expr, envir, enclos) : objet 'y' introuvable
>
eval
パイプ演算子とandを組み合わせて使用するにはどうすればよいsubstitute
ですか? 私には本当に難しいようです。