- 已编辑
试了一下 |>
, 目前来说还是会使用 magrittr 包, 主要有三点:
我经常使用
%<>%
, 它可以让代码更简洁, 让写代码的过程更流畅. 比如x$y$z %<>% c(a)
这样的代码, 要是不用%<>%
, 写出来会一长串, 尤其是变量名比较长的时候.如果值不是传给右边函数的第一个变量,
|>
用起来会比较笨拙. 比如x$y %>% {ifelse(is.null(.), ., 1)}
这样的代码, 要使用|>
必须配合 lambda 函数的写法, 行文上就更不流畅.另外, R 4.1.0 提供了
=>
所谓的 pipe bind operator 来解决值传递给非首位变量的问题, 但是这让 R 的 pipe 设计在整体上非常不统一, 非常不奥卡姆剃刀.
除非对速度有很高的要求, 不然代码流畅性和代码对人的可读性一定是我首先考虑的. 所以从以上几个角度来说, 我更倾向使用 magrittr.