С помощью базы R вы можете построить вызов, используя do.call
и создать list()
параметров, которые вы хотите передать в функцию
do.call("fxn", c(list(df$yes), unname(df[bar])))
Это будет то же самое, что и
fxn(df$yes, df[bar][[1]], df[bar][[2]])
Нам нужно использовать unname()
, потому что в противном случае ваши параметры будут называться «нет» и «возможно», в то время как ваша функция ожидает «у» и «z».
rlang
пакет, вы можете сделать
library(rlang)
eval_tidy(quo(fxn(df$yes, !!!unname(df[bar]))))
, который использует оператор сплайсинга !!!
, как некоторые другие языки.Base R не имеет такого синтаксиса.