我知道这是一个简单的问题所以我提前道歉。
如果我有这样的数据框:
git log --all --after="<date> 00:00" --before="<date> 23:59" --author="<author>"
我希望按类重新排序行,如:
| name | count | class |
|-------|-------|-------------|
| bob | 1 | first grade |
| adam | 5 | college |
| suzie | 7 | high school |
我不能使用| name | count | class |
|-------|-------|-------------|
| bob | 1 | first grade |
| suzie | 7 | high school |
| adam | 5 | college |
,因为我不希望按字母顺序重新排序。
我试过了,但失败了:
order()
这应该很简单......但是,当列中的值具有某种字母数字结构时,通常会保留重新排序。这里,结构由我定义。
我想我可以添加一个新列,为类分配数字,然后按类别进行排序。但必须有一个更优雅的方式?
答案 0 :(得分:2)
根据您想要的顺序,使class
成为factor
,然后使用order()
。
df$class = factor(df$class, levels = target)
df[order(df$class), ]
答案 1 :(得分:1)
我认为你可以通过有序因素来做到这一点。 首先从您感兴趣的变量中创建一个因子变量
d <- df$class
然后按照您希望的顺序订购因子
x <- ordered(factor(d), levels=c('first grade','high school','college'))
然后用它来订购你的df
df[order(x),]
完成工作,去玩棋盘游戏。
答案 2 :(得分:1)
您的NET USE
需要稍加修改才能发挥作用:
match