使用dplyr::filter()
和dplyr::mutate()
的管道通常可以替换为基本R等价的subset()
和transform()
,这在软件包开发中可能是一个好处。是否有arrange()
的任何直接基本R类似物可以用于基本R管道?
当然有order()
,但是在管道中的用法不像arrange()
那么清楚。下面是我想到的最好的,但是它并不可爱:
set.seed(0)
dat <- data.frame(x = 1:5, y = sample(100, 5))
dat
library(dplyr)
dat |>
filter(x > 2) |>
mutate(z = y / x) |>
arrange(z)
# Using base-R only
dat |>
subset(x > 2) |>
transform(z = y / x) |>
{\(d) d[order(d$z), ]}()
结果:
x y z
4 4 1 0.25
5 5 34 6.80
3 3 39 13.00
1条答案
按热度按时间yhived7q1#
我不认为有一个很好的基础等价于
dplyr::arrange()
,我们可以编写自己的函数,其行为类似于substitute()
,我们称之为organize()
:创建于2023年3月8日,使用reprex v2.0.2