【发布时间】:2014-02-02 03:26:52
【问题描述】:
我有一个包含字符和数值的字符串向量。例如:
a=c("ILLUMINA:420:C2D7UACXX:1:1102:14591:91480","ILLUMINA:420:C2D7UACXX:1:1102:14592:3881","ILLUMINA:420:C2D7UACXX:1:1102:14592:37103","ILLUMINA:420:C2D7UACXX:1:1102:14592:37356")
我想对向量进行排序,以便字符按字母顺序排序,数字按数字排序。字符串的结构始终采用以下格式:
"ILLUMINA:420:C2D7UACXX:1:<number>:<number>:<number>",所以实际上这个顺序只适用于最后三个冒号分隔的数字。
我确实尝试过mixedsort {gtools},但结果与使用sort 和
sort.int,即:
> mixedsort(a)
[1] "ILLUMINA:420:C2D7UACXX:1:1102:14591:91480" "ILLUMINA:420:C2D7UACXX:1:1102:14592:37103"
[3] "ILLUMINA:420:C2D7UACXX:1:1102:14592:37356" "ILLUMINA:420:C2D7UACXX:1:1102:14592:3881"
显然正确的顺序应该是:
[1] "ILLUMINA:420:C2D7UACXX:1:1102:14591:91480" "ILLUMINA:420:C2D7UACXX:1:1102:14592:3881"
[3] "ILLUMINA:420:C2D7UACXX:1:1102:14592:37103" "ILLUMINA:420:C2D7UACXX:1:1102:14592:37356"
有什么立竿见影的解决办法吗?
【问题讨论】: