1

可能重复:
R 排序规则是什么?

我们正在尝试对我的数据矩阵中的基因位置坐标进行排序。该列的格式为:

xx xxxxxx

其中 xx 是从 1 到 23 的染色体编号,xxxxxx 是基因位置的数字字符串。

特别是,我有兴趣首先按染色体编号然后按基因位置对数据矩阵进行升序排序,例如,染色体 5 上的基因 1,位置 21 位于染色体 17,位置 34 上基因 2 的顶部。

在 Windows 上的 R (2.15.0 x64) 中,我看到以下结果:

> '5 21' < '12 14'
[1] FALSE
> ' 5 21' < '12 14' # white space prefixed to first digit corrects sort order.
[1] TRUE

在 Ubuntu 12.04 LTS 上的 R (2.15.1 x64) 中,我看到以下结果:

> '5 21' < '12 14'
[1] FALSE
> ' 5 21' < '12 14' # white space does not correct sort order.
[1] FALSE

这对我来说很奇怪,因为 Windows 版本通过忽略空格然后考虑数字排序(05 vs 11)来纠正排序顺序,而 Linux 版本按字符排序(5 vs 1)。Windows 版本假定前缀空格为 0(我猜),然后考虑两位数进行比较,但 Linux 版本忽略空格并将第一个字符串的第二个数字与第二个字符串的第一个数字进行比较。

我在 R 中找到了混合排序 {gtools} 函数来克服这个问题,但认为这值得报告并获得解决此问题的帮助。

谢谢!

4

0 回答 0