【发布时间】: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 来实现相同的目的?
【问题讨论】:
-
看看
setorder:library("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