我编写了一个使用 {tidyselect} 选择器(例如,等)的 Rcontains()
包starts_with()
。我想在包中添加更多选择帮助函数,以根据某些属性选择变量。例如,选择所有数值变量或可能所有逻辑变量。
我已经查看了 {tidyselect} 基本代码。但我无法推测变量的注册是如何工作的,因此无法将其扩展到通过属性选择变量。
我做了一些搜索,看起来 {recipes} 包已经成功实现了我正在寻找的其他帮助程序(例如all_numeric()
),但我自己正在努力编写扩展函数。https://github.com/tidymodels/recipes/blob/master/R/selections.R
我相信,归根结底是我不明白当变量注册到tidyselect::scoped_vars()
函数时会发生什么。如果我tidyselect::scoped_vars(vars = names(mtcars))
在干净的环境中运行,我看不到任何更改。但是我可以在注册变量后在全局环境中使用 {tidyselect} 助手。
names(mtcars)
#> [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
#> [11] "carb"
tidyselect::scoped_vars(vars = names(mtcars))
# returns position of column 'mpg'
tidyselect::starts_with("mp")
#> 1
任何提示或对某些文档的指导将不胜感激!谢谢!