假设我想使用多列和非标准升序来排序data.frame
。我可能有一个类似以下代码的函数。
my_order <- function(data, ...) {
with(data, order(...))
}
当我使用这个函数时,我会出现错误,因为我的列没有在with
的上下文中进行评估。
my_order(mtcars, mpg, cyl)
# Error in order(...) : object 'mpg' not found
注意:对于这个问题,我不希望使用 dplyr::arrange()
,因为它会添加一个依赖项。
do.call
,但是一直无法正确使用(我使用的是do.call(order, list(with(data, ...)))
,已经快到了解决问题的地步)。顺便说一下,你可以使用do.call(order, as.list(dots))
来代替引号标注 order,我认为这样可能会更快一些。谢谢 :) - nathaneastwood