私はまだRのquosuresを理解しようとしていますが、なぜ以下の関数の置換が失敗するのか分かりません。カスタム関数でrlang :: UQSの変数を使用するにはどうすればよいですか?
my.toggle <- function(toggle) {
if (toggle) {
print("yes")
} else {
print("no")
}
}
fn.args <- list(toggle = T)
my.toggle(rlang::UQS(fn.args)) # fails
# Error in if (toggle) { : argument is not interpretable as logical
rlang::quo(my.toggle(rlang::UQS(fn.args))) # but this is the right function call
# <quosure: global>
# ~my.toggle(toggle = TRUE)
それは(実際に、それはあなたがquo
で関数呼び出しをラップするときあなたが得るものだと、)my.toggle(toggle = T)
と同等でなければなりませんmy.toggle(rlang::UQS(fn.args))
を呼び出すように思えるが、機能が正しく実行されません。私は間違って何をしていますか?