如何在自定义函数/包中调用expss包的%to%运算符?
解决expss包
%to%运算符的调用问题 有两种可靠方式可在自定义函数或包中调用expss的%to%运算符:
方法一:将运算符赋值到当前环境
在函数开头把%to%运算符赋值到当前作用域,之后即可直接使用:
my_function <- function(data) { # 赋值运算符到当前环境 `%to%` <- expss::`%to%` # 正常使用%to% data %>% select(a %to% z) }
方法二:使用do.call间接调用
若不想在环境中赋值运算符,可通过do.call间接调用:
my_function <- function(data) { # 间接调用%to%生成列范围 cols <- do.call(expss::`%to%`, list("a", "z")) data %>% select(all_of(cols)) }
包开发场景补充
如果是开发R包,建议在NAMESPACE文件中添加importFrom(expss, '%to%'),之后就能在包代码中直接使用%to%,无需重复赋值。
内容的提问来源于stack exchange,提问作者deschen
相关产品推荐
相关产品推荐

