【问题标题】:R: Sorting a vector alphabetically after nth characterR:在第 n 个字符后按字母顺序对向量进行排序
【发布时间】:2016-11-08 17:03:47
【问题描述】:

我想按字母顺序对向量的元素(字符串)进行排序,但只考虑第 n 个之后的字符。字符串可以包含数字和字符,例如:

> v <- c("ENCSR529JNJ_HNR35NPK_21_K562", "ENCSR529MBZ_AP22IG_11_K562", "ENCSR529MBZ_AP22IG_21_K562", "ENCSR530BOP_DUPT6H_11_K562", "ENCSR530BOP_DUPT6H_21_K562")

在第 11 个字符之后排序后,v 将变为:

"ENCSR529MBZ_AP22IG_11_K562", "ENCSR529MBZ_AP22IG_21_K562", "ENCSR530BOP_DUPT6H_11_K562", "ENCSR530BOP_DUPT6H_21_K562", "ENCSR529JNJ_HNR35NPK_21_K562"

任何帮助将不胜感激!谢谢

【问题讨论】:

    标签: r sorting


    【解决方案1】:
    v[order(substr(v, start = 12, stop = max(nchar(v))))]
    # [1] "ENCSR529MBZ_AP22IG_11_K562"   "ENCSR529MBZ_AP22IG_21_K562"   "ENCSR530BOP_DUPT6H_11_K562"   "ENCSR530BOP_DUPT6H_21_K562"  
    # [5] "ENCSR529JNJ_HNR35NPK_21_K562"
    

    substr(v, start = 12, stop = max(nchar(v))) 给出省略前 11 个字符的子字符串。所以我们按那个顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 2015-07-23
      相关资源
      最近更新 更多