0
我仍試圖理解R中的問題,但我不明白爲什麼下面的函數中的替換失敗。如何在自定義函數中使用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)
好像叫my.toggle(rlang::UQS(fn.args))
應相當於my.toggle(toggle = T)
(事實上,這是當你在包裝的quo
函數調用你會得到什麼),但該函數不正確執行。我究竟做錯了什麼?