我有一个名字列表,我想按最后一个数字升序排序。
[1] "W2345_S-001-R1_1.csv" "W2346_S-001-R1_10.csv"
[3] "W2347_S-001-R1_2.csv" "W2348_S-001-R1_9.csv"
[5] "W2345_S-001-R2_1.csv" "W2346_S-001-R2_10.csv"
[7] "W2347_S-001-R2_2.csv" "W2348_S-001-R2_9.csv"
我想先按R1再按R2排列它们。在R1或R2中,应该按1、2、9、10排列。因此,输出应为
1] "W2345_S-001-R1_1.csv" "W2346_S-001-R1_2.csv"
[3] "W2347_S-001-R1_9.csv" "W2348_S-001-R1_10.csv"
[5] "W2345_S-001-R2_1.csv" "W2346_S-001-R2_2.csv"
[7] "W2347_S-001-R2_9.csv" "W2348_S-001-R2_10.csv"
2条答案
按热度按时间wgx48brx1#
在您的情况下,应该将字符串缩短为要排序的数字部分:第一组数字不是您要排序的起始数字。在这种情况下,请使用
gsub
和str_order
(gtools::mixedorder
的作用相同)正确排序:"W.*1-"
匹配任何以W
开始,以1-
结束,并且在.*
之间有一个或多个字符的子字符串。2许多不同的正则表达式都可以在这里工作,所以这只是一种可能性。d8tt03nd2#
为了好玩的R基溶液,