如何调整paste等函数参数顺序适配管道操作?stringr包有对应方案吗?
解决方案
- 方法1:使用magrittr管道的
.占位符
管道默认将左侧返回值传入右侧函数的第一个参数,你可以用.代表管道传递的值,手动指定它在paste参数列表中的位置:
"string1" %>% paste("string2", ., sep = "_")
运行结果直接返回"string2_string1",不需要额外定义中间变量。
- 方法2:封装自定义适配管道的工具函数
如果频繁需要调整参数顺序适配管道,你可以针对常用函数封装反序版本:
# 自定义反序拼接函数 paste_rev <- function(a, b, sep = "_") { paste(b, a, sep = sep) } # 直接用管道调用 "string1" %>% paste_rev("string2")
- 方法3:使用R原生管道的匿名函数适配
如果你用的是R 4.1及以上版本的原生|>管道,可以通过匿名函数调整参数位置,不需要额外加载magrittr包:
"string1" |> (\(x) paste("string2", x, sep = "_"))()
内容的提问来源于stack exchange,提问作者Pavel Shliaha
相关产品推荐
相关产品推荐

