使用文本和数字对列进行排序

时间:2014-09-17 21:29:01

标签: sorting text numbers

我正在尝试按第一列排序几个csv文件。这是我得到的输出示例:

OR7
OR8
OR10
OR100
OR101
OR102
OR103
OR104
OR105
OR106
OR107
OR109
OR11
OR111
OR113
OR114
OR115
OR117
OR119

以下是我使用的命令:sort -k 1.3,1.4n -k1.5n file(我按第一列排序) 但是我希望它像这样排序:

OR7
OR8
OR10
OR11
OR100
OR101
OR102
OR103
OR104
OR105
OR106
OR107
OR109
OR111
OR113
OR114
OR115
OR117
OR119

我知道这里还有其他类似的问题,但我无法弄清楚如何使他们的解决方案适应我的问题。 我也在使用MacOS。我只是在看一个Ubuntu机器,并且排序有更多选项(检查" man sort")。例如,当我尝试在我的计算机上使用-V时,它不起作用。 谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

我在R中找到了解决方法。因为我的目标是制作Trellis情节。我所做的是将基因名称作为因子并按我想要的顺序设置。例如:

OR$Gene<-factor(OR$Gene, levels=(c("OR2", "OR3", "OR4", "OR5", "OR6", "OR7", "OR8", "OR10", "OR11", "OR12", "OR13", "OR14", "OR15", "OR16", "OR17", "OR18", "OR19", "OR20", "OR21", "OR23", "OR24", "OR25", "OR26", "OR27", "OR28", "OR30", "OR31", "OR33", "OR36", "OR39", "OR41", "OR42", "OR43", "OR44", "OR45", "OR47", "OR48", "OR49", "OR50", "OR52", "OR55", "OR56", "OR59", "OR62", "OR63", "OR66", "OR67", "OR69", "OR70", "OR71", "OR72", "OR76", "OR78", "OR79", "OR80", "OR81", "OR84", "OR85", "OR86", "OR87", "OR88", "OR91", "OR92", "OR93", "OR94", "OR95", "OR96", "OR97", "OR98", "OR100", "OR101", "OR102", "OR103", "OR104", "OR105", "OR106", "OR107", "OR109", "OR111", "OR113", "OR114", "OR115", "OR117", "OR119", "OR121", "OR122", "OR123", "OR124", "OR125", "OR126", "OR130"))

然后使用xyplot print命令我使用了index.cond:

index.cond = list(OR$Gene),

嗯,我得到了我想要的东西,我相信可能是一个更容易的方式。 最好,