【问题标题】:How to order data.table by custom column [duplicate]如何按自定义列订购data.table [重复]
【发布时间】:2016-10-24 14:06:28
【问题描述】:

按列索引对 data.frame 进行排序:

> df <- data.frame(5:9, 8:4)
> df
  X5.9 X8.4
1    5    8
2    6    7
3    7    6
4    8    5
5    9    4
> df[order(df[,2]),]
  X5.9 X8.4
5    9    4
4    8    5
3    7    6
2    6    7
1    5    8

或按列名:

> df[order(df[,"X5.9"]),]
  X5.9 X8.4
1    5    8
2    6    7
3    7    6
4    8    5
5    9    4

是否可以通过自定义列名或索引来使用 data.table 和 order 来实现相同的目的?

【问题讨论】:

  • 看看setorderlibrary("data.table") setDT(df) setorder(df, X5.9)
  • 或者只是:setDT(df, key = 'X5.9')
  • 我猜没有人会向您展示按列号执行此操作的方法,因为不鼓励/认为这是一个坏主意。请参阅常见问题解答 1.1 rawgit.com/wiki/Rdatatable/data.table/vignettes/…
  • 如果您将列名存储为字符串 col = "X5.9",我猜应该是 df[ order(get(col)) ]

标签: r data.table


【解决方案1】:

我们可以使用setkey

setkey(setDT(df), X5.9)

【讨论】:

    猜你喜欢
    • 2013-04-13
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 2017-04-18
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    相关资源
    最近更新 更多