我有一个简单的表格,其中包含段落编号:
> table <- data.frame(id=c(1,2,3,4,5,6,7,8,9), paragraph=c("1.1.1.1","1","2","1.1","100","1.2","10","1.1.1","1.1.2"))
> print(table)
id paragraph
1 1.1.1.1
2 1
3 2
4 1.1
5 100
6 1.2
7 10
8 1.1.1
9 1.1.2
10 1.10
我希望按照这种方式排序:
id paragraph
2 1
4 1.1
8 1.1.1
1 1.1.1.1
9 1.1.2
6 1.2
10 1.10
3 2
7 10
5 100
对我来说问题在于(我可能可以通过 .
将它们分割为 data.frame
,然后应用多列排序),我不知道输出中会有多少个点 - 数量可能会随时变化。
gtools::mixedsort
不太起作用。噢,算了。 - Ben Bolkergtools::mixedorder
。 - Jaapgtools::mixed****
在这种情况下实际上不能按照OP的要求工作——它们会将1.1.1.1排在1.1.1之前......这不是标准的混合字典/数字排序问题。建议重新开放。 - Ben Bolker1.1.1.1
不应该在1.1.2
之上吗? - Sotos