28

Rの自然な並べ替えはありますか?

次のような文字ベクトルがあるとします。

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

英数字で並べ替えたいので、次のようにします。

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

これはどこかに存在しますか、それともコーディングを開始する必要がありますか?

4

2 に答える 2

45

「英数字の並べ替え」は、あなたが考えていることを意味するとは思いません。

いずれにせよ、 gtools の一部であるmixsortが必要なようです。

> 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"
于 2010-05-06T02:26:23.470 に答える