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