按文本字符串切片排序

时间:2014-11-18 13:13:19

标签: r string excel sorting

我想要对数据进行排序,但标准的Excel“A到Z”排序功能并没有削减它。我希望有人知道如何制作适合我需求的自定义排序。这是一个示例:

chrPos        count
chr1_10000598   10
chr1_10000647   10
chr1_10001370   30
chr1_10001390   30
chr1_10001392   30
chr1_10001414   30
chr1_10001418   30
chr1_10001473   10
chr1_10001505   10
chr1_10001516   20
chr1_1000156    30

正如您所看到的,当使用内置排序功能时,最后一行不合适,这应该是第一行而不是最后一行。我认为添加第二层排序可以解决问题,但该层必须根据下划线后面的数字按升序值排序。

有什么想法吗?用R代替这可能会更容易吗?

编辑以添加评论中的详细信息:

排序是在下划线之后的数字部分上升,在chr数字部分上升(从1到22都包括),然后按顺序chrM_,chrX_和chrY_(也将其数字部分按升序排序) )。

下划线后面的数字部分最多可达8位数。

1 个答案:

答案 0 :(得分:0)

假设{A}位于ColumnA中,请尝试帮助列:

chrPos

或者,对于评论中提到的其他要求:

=IF(FIND("_",A1)=5,CHAR(64+MID(A1,4,1)),CHAR(64+MID(A1,4,2)))&REPT("0",8-LEN(A1)+FIND("_",A1))&MID(A1,FIND("_",A1)+1,8) 

然后选择辅助列,复制,选择特殊粘贴,顶部的值,并将其用于排序。