【问题标题】:ordering a vector of characters in R在 R 中对字符向量进行排序
【发布时间】:2013-01-24 02:24:11
【问题描述】:

我正在尝试订购一个状态向量。我知道这应该很简单,但我无法解决。我查看了其他建议使用 vapply(...) 的复杂解决方案的帖子,但这似乎没有必要。我有以下内容:

  state.vec = c("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "CD", "FL", "AG", "HI", "DI",   
  "IL", "IN", "AI", "KS", "KY", "AL", "EM", "DM", "AM", "IM", "MN", "MS", "MO", "MT", "EN", "NV",   
  "HN", "JN", "MN", "NY", "CN", "DN", "HO", "KO", "OR", "AP", "PR", "IR", "CS", "DS", "NT", "TX",  
  "TU", "TV", "IV", "AV", "AW","VW", "IW", "WY", "GU")

不幸的是,order 将值转换为它们的整数顺序:

 order(state.vec) 
 2  1  4  3  5  6  7  9  8 10 11 54 12 16 13 14 15 17 18 19 22 21 20 23 24 26 25 27 34 35 28   
 30 31 32 29 33 36 37 38 39 40 41 42 43 44 45 46 49 48 47 50 52 51 53

认识到 'AK' 出现在 'AL' 之前是很聪明的,因此 'AL' 对应于秒或整数 2。理想情况下,我希望它重新排序向量,使其确实从 1 开始: 53 适当,例如('AK','AL','AR',......等等。

【问题讨论】:

    标签: r character


    【解决方案1】:
    state.vec[order(state.vec)]
    

    或者简单地说:

    sort(state.vec)
    

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多