按R中的预定字符串对行重新排序
我知道这是一个简单的问题,所以我提前道歉 如果我有这样一个数据帧:按R中的预定字符串对行重新排序,r,R,我知道这是一个简单的问题,所以我提前道歉 如果我有这样一个数据帧: | name | count | class | |-------|-------|-------------| | bob | 1 | first grade | | adam | 5 | college | | suzie | 7 | high school | 我想按类对行重新排序,如: | name | count | class | |------
| 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()
,因为我不希望类按字母顺序重新排序
我试过了,但失败了:
target <- c("first grade", "high school", "college")
df[match(target, df$class),]
target将class
afactor
的级别按您想要的顺序设置,然后使用order()
将class
afactor
与所需的级别进行排序,然后使用order()
我认为你可以通过一个有序因子来实现这一点。
首先从您感兴趣的变量中创建一个因子变量
d <- df$class
完成任务,去玩棋盘游戏。我想你可以通过有序因子来完成。
首先从您感兴趣的变量中创建一个因子变量
d <- df$class
完成任务,去玩棋盘游戏。您的匹配项需要稍加修改才能正常工作:
df[order(match(df$class, target)),]
您的匹配项
需要稍加修改才能正常工作:
df[order(match(df$class, target)),]
或者不转换列:df[order(factor(df$class,levels=target)),]
或者不转换列:df[order(factor(df$class,levels=target)),]
您不需要一个ordered
因子才能使级别具有订单。即使是常规因子也会按照您指定的顺序设置级别<只有当您希望模型中的对比度为2v1、3v2、4v3,而不是通常的2v1、3v1、4v1等时,才需要代码>有序的
因子。感谢您的提醒Gregor。您不需要<代码>有序的
因子,级别才有秩序。即使是常规因子也会按照您指定的顺序设置级别<代码>有序仅当您希望模型中的对比度为2v1、3v2、4v3而不是通常的2v1、3v1、4v1等时,才需要因子。感谢您的提醒Gregor。
df[order(match(df$class, target)),]