我想对data.table(dat
)进行排序:
Rating el es
A 21.96 0.15
AA 26.25 0.13
AAA 34.07 0.06
B 0.84 0.07
BB 2.24 0.07
BBB 14.63 0.52
CCC 70.48 0.04
通过应用
dat[order(dat$Rating)]
我得到相同的结果。
是否可以基于列等级的任意顺序获得任意顺序?
像这样:
Rating el es
AAA 34,07 0,06
AA 26,25 0,13
A 21,96 0,15
BBB 14,63 0,52
BB 2,24 0,07
B 0,84 0,07
CCC 70,48 0,04
我努力了:
dat[order(dat[,1],levels = c("AAA","AA","A","BBB", "BB", "B", "CCC"))]
但我在表中得到的顺序与以前相同。
最佳答案
您需要先将Rating
更改为factor
,然后使用order
:
dat$Rating <- factor(dat$Rating, levels = c("AAA","AA","A","BBB", "BB", "B", "CCC"))
dat[order(dat$Rating), ]
# Rating el es
# 3 AAA 34.07 0.06
# 2 AA 26.25 0.13
# 1 A 21.96 0.15
# 6 BBB 14.63 0.52
# 5 BB 2.24 0.07
# 4 B 0.84 0.07
# 7 CCC 70.48 0.04
数据:
tt <- "Rating el es
A 21.96 0.15
AA 26.25 0.13
AAA 34.07 0.06
B 0.84 0.07
BB 2.24 0.07
BBB 14.63 0.52
CCC 70.48 0.04"
dat <- read.table(text = tt, header = T)