dplyr的arrange()函数无列参数时的作用及历史行为问询
关于无参数调用
dplyr::arrange()的问题解答 (1) 无参数arrange()的作用、特殊场景与冗余性
- 对输入数据的影响:常规使用场景下,
df %>% arrange()不会对输入数据的顺序、内容产生任何修改,返回结果和原数据框/tibble完全一致。 - 特殊场景:几乎不存在能引发变化的常规场景。除非你自定义了
arrange()的S3方法(人为修改dplyr默认行为),或者数据框带有极端特殊的自定义属性(这种情况极其罕见),否则不会有任何变化。 - 冗余性:这个调用是完全冗余的——它没有执行任何实际操作,删掉之后对代码逻辑和输出结果没有任何影响。
(2) 历史版本的行为
从dplyr正式发布至今,没有任何一个官方版本会在无参数调用arrange()时修改输入数据。
- 早期版本中,无参数的
arrange()不会报错,而是直接返回原数据对象; - 你可能混淆了
arrange()和带后缀的变体(比如arrange_all()):arrange_all()如果不传参数,会按数据框的所有列依次升序排序,但这是另一个函数,和无参数的arrange()不是一回事。
内容的提问来源于stack exchange,提问作者user6475
相关产品推荐
相关产品推荐

