如何在 R 中执行自然(词典)排序? [英] How to perform natural (lexicographic) sorting in R?

查看:55
本文介绍了如何在 R 中执行自然(词典)排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有针对 R 的自然排序?

假设我有一个像这样的字符向量:

Say I had a character vector like so:

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

我想按字母数字排序,所以我得到这个:

I'd like to sort it aphanumerically, so I get back this:

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

这是否存在于某处,还是我应该开始编码?

Does this exist somewhere, or should I start coding?

推荐答案

我不认为字母数字排序"意思是你认为的意思.

I don't think "alphanumeric sort" means what you think it means.

无论如何,看起来你想要混合排序,gtools的一部分.

In any case, looks like you want mixedsort, part of gtools.

> 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"

这篇关于如何在 R 中执行自然(词典)排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆