以某种方式排序数据框的行*除了升序/降序之外的其他*

时间:2013-12-25 01:49:15

标签: r character match

我有一个数据框,其中一列是“频率”。此列中的不同值包括:每日,每周,每月,每季度,每年,并且每个值出现不止一次。我想使用order函数按照该顺序(而不是按字母顺序升序/降序)对数据进行排序。有没有办法可以做到这一点?我必须创建一些引用并使用匹配吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为这样做的一个好方法是使用有序因子:

levels = c("Daily", "Weekly", "Monthly", "Quarterly", "Annually")
df = data.frame(Frequency=c("Daily", "Monthly", "Daily", "Annually"), number = 1:4)
df$Frequency = factor(df$Frequency, levels=levels)
df = df[order(df$Frequency),]
#       Frequency number
# 1     Daily      1
# 3     Daily      3
# 2   Monthly      2
# 4  Annually      4