【问题标题】:Order Dataframe by vector while preserving indices按向量对数据帧排序,同时保留索引
【发布时间】:2015-08-22 09:21:35
【问题描述】:

假设我有一个名为 result 的数据框:

  id nobs
1 25  463
2 26  586
3 27  338
4 28  475
5 29  711
6 30  932

还有这个向量:

ord = c(30, 29, 28, 27, 26, 25)

现在我明白了,我可以通过这样做来根据向量顺序对数据框进行排序:

result[match(ord, result$id),]

得到以下结果:

  id nobs
6 30  932
5 29  711
4 28  475
3 27  338
2 26  586
1 25  463

但是,如您所见,行索引也已更改(6,5,4..)。我想像以前一样保留它们(1,2,3 ...)。

我该怎么做?

【问题讨论】:

    标签: r sorting vector dataframe


    【解决方案1】:

    您可以在抓取新数据框后清除行名:

    res <- result[match(ord, result$id),]
    row.names(res) <- NULL
    res
    #   id nobs
    # 1 30  932
    # 2 29  711
    # 3 28  475
    # 4 27  338
    # 5 26  586
    # 6 25  463
    

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 2017-03-26
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多