强制 R 在 set_args 函数的参数内应用函数或调用变量
Posted
技术标签:
【中文标题】强制 R 在 set_args 函数的参数内应用函数或调用变量【英文标题】:Forcing R to apply a function or call a variable inside an argument of set_args function 【发布时间】:2022-01-20 10:32:57 【问题描述】:当我尝试使用索引来提取向量的元素或调用欧洲萝卜库的 set_args 函数中的函数时;
library(parsnip)
tree_numbers = c(500, 1000)
boost_tree() %>% set_args(tree_depth = tree_numbers[1])
我正面临这样的情况,上面代码的结果是;
Boosted Tree Model Specification (unknown)
Main Arguments:
tree_depth = tree_numbers[1]
函数直接将tree_depth = tree_numbers[1]
作为字符串调用,而不是调用tree_numbers[1]
的结果500。对于具有相同逻辑的任何其他函数的参数,我可以调用或提取 500 值。似乎在 set_args 中输入的任何内容都直接作为字符串,然后函数对其进行解码。
这种情况的解决方案是在set_args
函数中获得500 或1000 个tree_numbers
向量的元素?
【问题讨论】:
【参考方案1】:您可以使用 bang bang 运算符 !!
拼接参数:
library(parsnip)
tree_numbers = c(500, 1000)
boost_tree() %>% set_args(tree_depth = !! tree_numbers[1])
#> Boosted Tree Model Specification (unknown)
#>
#> Main Arguments:
#> tree_depth = 500
#>
#> Computational engine: xgboost
由reprex package (v2.0.1) 于 2021 年 12 月 17 日创建
【讨论】:
以上是关于强制 R 在 set_args 函数的参数内应用函数或调用变量的主要内容,如果未能解决你的问题,请参考以下文章