【发布时间】:2022-01-14 17:43:39
【问题描述】:
我正在尝试通过包含一些数值的文本列来排列 data.frame:
foo <- data.frame(x = c("A100", "A1", "A2", "A10", "A11"))
我正在尝试使用 stringr::str_order(foo$x, numeric = TRUE) 或类似的东西对其进行数字排序。我正在尝试将其与 dplyr::arrange 一起使用,但排列不正确。这是我所做的:
dplyr::arrange(foo, stringr::str_order(x,numeric = T))
在我的机器上,这将按 A11、A100、A1、A2、A10 的顺序返回值,而不是 A1、A2、A10、A11、A100。此代码正常工作:
foo[stringr::str_order(foo$x,numeric = T),]
我希望它们能做同样的事情,但至少在我的机器(Windows 10,R 版本 4.1.0)和我兄弟的机器(Mac,R 版本 4.0.2)上没有。
我的问题是,为什么输出不同?我错过了什么?有没有办法让 str_order 和安排一起工作?
我希望能够使用 dplyr::arrange 对该列进行排序,这样我就不需要跟踪我使用过的所有位置。
感谢您的想法和时间!
【问题讨论】:
-
如果答案之一解决了您的问题,请考虑接受。