【发布时间】:2021-12-30 10:46:52
【问题描述】:
我有一个字符串形式的数据标签列表,就像这样:
data <- c("ABCD 2", "ABCD 3", "WXYZ 1", "WXYZ 5", "WXYZ 3", "WXYZ 4", "ABCD 4", "ABCD 11")
请注意,某些数字(包括“1”)有时会丢失。当然,正常的排序是将ABCD 标签放在WXYZ 标签之前,然后将ABCD 11 放在ABCD 2 之前。
我可以使用gtools::mixedsort 轻松解决编号问题。但是,出于特定问题的上下文的原因,我也希望WXYZ 标记位于ABCD 标记之前。
例如,当上面的data按我需要排序时,它应该是这样的:
dataSorted <- c("WXYZ 1", "WXYZ 3", "WXYZ 4", "WXYZ 5", "ABCD 2", "ABCD 3", "ABCD 4", "ABCD 11")
谢天谢地,我现在只需要处理这两种类型的标签,但我想我应该寻求一个通用的解决方案。有没有办法让gtools::mixedsort 做反向字母但正常的数字排序?如果我设置decreasing = TRUE,那么它也会反转所有的数字顺序。
现在我只是用一个列表来强制排序,这不仅不优雅,而且由于标签上的数字没有理论上的上限,它最终也会被打破。
【问题讨论】: