【问题标题】:sort strings by numbers inside them [duplicate]按其中的数字对字符串进行排序[重复]
【发布时间】:2018-08-11 13:59:55
【问题描述】:

我有像这样的字符串向量:

 > all.files
 [1] "./freq_1.txt"  "./freq_10.txt" "./freq_11.txt" "./freq_12.txt"
 [5] "./freq_13.txt" "./freq_14.txt" "./freq_15.txt" "./freq_16.txt"
 [9] "./freq_17.txt" "./freq_18.txt" "./freq_19.txt" "./freq_2.txt" 
 [13] "./freq_20.txt" "./freq_21.txt" "./freq_22.txt" "./freq_23.txt"
 [17] "./freq_24.txt" "./freq_25.txt" "./freq_26.txt" "./freq_27.txt"
 [21] "./freq_28.txt" "./freq_29.txt" "./freq_3.txt"  "./freq_30.txt"
 [25] "./freq_4.txt"  "./freq_5.txt"  "./freq_6.txt"  "./freq_7.txt" 
 [29] "./freq_8.txt"  "./freq_9.txt"

现在我如何将这个向量排序为

 "./freq_1.txt" "./freq_2.txt" "./freq_3.txt" ....

【问题讨论】:

  • @lebatsnok 给出的答案可能是最好的。

标签: r sorting


【解决方案1】:

你可以这样做:

no <- gsub("[^0-9]", "", all.files) # remove everything except 0-9
no <- as.numeric(no)
all.files[order(no)]  # sort by numeric component

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2015-03-16
    • 2013-04-15
    • 2021-03-16
    • 2021-11-24
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多