Как выполнить естественную сортировку?

Есть ли натуральный сорт для R?

Скажем, что у меня был вектор символов:

seq.names <- c('abc21', 'abc2', 'abc1', 'abc01', 'abc4', 'abc201', '1b', '1a')

Я хотел бы отсортировать его aphanumerically, так что я верну это:

c('1a', '1b', 'abc1', 'abc01', 'abc2', 'abc4', 'abc21', 'abc201')

Это где-то существует, или мне нужно начинать кодирование?

Ответы

Ответ 1

Я не думаю, что "буквенно-цифровая сортировка" означает, что вы думаете, что это значит.

В любом случае, похоже, что вы хотите mixedsort.

> install.packages('gtools')
[...]
> require('gtools')
Loading required package: gtools
> n
[1] "abc21"  "abc2"   "abc1"   "abc01"  "abc4"   "abc201" "1b"     "1a"    
> mixedsort(n)
[1] "1a"     "1b"     "abc1"   "abc01"  "abc2"   "abc4"   "abc21"  "abc201"