强制 R 在 set_args 函数的参数中应用函数或调用变量
Forcing R to apply a function or call a variable inside an argument of set_args function
当我尝试使用索引来提取向量的元素或调用 parsnip 库的 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_numbers[1]
的结果500,而是直接将tree_depth = tree_numbers[1]
作为字符串。对于具有相同逻辑的任何其他函数的参数,我可以调用或提取 500 值。好像在set_args里输入什么都直接当成字符串然后函数解码
在set_args
函数中获取tree_numbers
向量的元素500或1000的解决方案是什么?
您可以使用 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 创建
当我尝试使用索引来提取向量的元素或调用 parsnip 库的 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_numbers[1]
的结果500,而是直接将tree_depth = tree_numbers[1]
作为字符串。对于具有相同逻辑的任何其他函数的参数,我可以调用或提取 500 值。好像在set_args里输入什么都直接当成字符串然后函数解码
在set_args
函数中获取tree_numbers
向量的元素500或1000的解决方案是什么?
您可以使用 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 创建