本文只讲一个问题:%>% 和 |>
到底有什么区别,以及写代码时该怎么选。
核心结论很简单:两者都能实现“把左边结果传给右边”,但
|> 是 R 原生语法,%>%
来自外部包。
%>%
是什么%>% 是 magrittr
包提供的管道操作符,也常见于 dplyr 等 tidyverse
风格代码中。
例如:
等价于:
在数据处理代码里,它很常见:
%>% 和 |>
最关键的区别不在“能不能用”,而在“依赖谁”。
%>% 来自外部包
magrittr,所以如果你在函数或包里使用它,通常就意味着你要引入额外依赖。
而 |> 是 R
自带语法,不需要额外安装包,也不需要为它单独声明依赖。
所以如果你是在写 基础函数 或 R
包,|> 往往更轻量。
使用 %>%:
使用 |>:
这两段代码效果基本一样。
是否要把老管道符 %>% 全部换成新管道符
|>,答案是:不必强行全部替换。
更实用的建议是:
%>%,而且运行稳定,就不用为了“新”而全部重写|>%>% 也完全没问题|>旧代码不必强改,新代码优先用
|>;但如果你本来就在 tidyverse 场景里,继续用
%>% 也很合理。