在对包含时间戳的文件路径进行排序时,我不太理解mixedsort的行为

编程语言 2026-07-09

我有一些时间戳需要排序。

我需要得到最近的日期。

请看下面的示例:

> sort(c("2026-04-05", "2026-04-06"), decreasing=FALSE)
[1] "2026-04-05" "2026-04-06"
> gtools::mixedsort(c("2026-04-05", "2026-04-06"), decreasing=FALSE)
[1] "2026-04-06" "2026-04-05"

我不明白为什么 gtools::mixedsort 会把 “6” 放在 “5” 之前。

解决方案

负号是数字的一部分,-6在 -5之前。把 - 转成+,排序后再转回:

library(gtools)

y <- c("2026-04-05", "2026-04-06")
y |>
  chartr("-", "+", x = _) |> 
  mixedsort(decreasing = FALSE) |>
  chartr("+", "-", x = _)
## [1] "2026-04-05" "2026-04-06"
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章