我正在尝试使用年份和月份信息对矢量进行排序。我从Date类型变量获得年份和月份。这是我想要完成的一个例子:
example <- as.Date(c("2010-04-22", "2010-04-26", "2010-04-26",
"2010-06-04", "2010-06-07", "2010-06-18", "2010-06-21",
"2010-07-14", "2010-07-16", "2010-07-30", "2010-08-20"))
mes_ano <- as.character(as.yearmon(as.Date(example)))
mes_ano <- factor(mes_ano, levels = c(unique(mes_ano),
"mai 2010", "set 2010", "out 2010", "nov 2010"))
现在我想按年份和月份排序mes_ano,但我不知道如何。
实际上,我的真正目标是对关卡进行排序,因为我将用ggplot2制作一个情节,我需要对关卡进行排序。但我认为,如果我只是询问有关矢量的排序,它会让我们的生活更轻松。然后我可以弄清楚如何排序水平。
答案 0 :(得分:1)
我想你想使用Potuguese月名。我们走吧:
您的数据:
example <- as.Date(c("2010-04-22", "2010-04-26", "2010-04-26",
"2010-06-04", "2010-06-07", "2010-06-18", "2010-06-21",
"2010-07-14", "2010-07-16", "2010-07-30", "2010-08-20"))
我们需要一个带有这些名称的向量:
port_mon <- c("jan", "fev", "mar", "abr", "mai", "jun",
"jul", "ago", "set", "out", "nov", "dez")
现在,对数据进行排序:
ex_sorted <- sort(example)
用葡萄牙语选择正确的月份名称:
month_names <- port_mon[as.numeric(format(ex_sorted, "%m"))]
结合数月和数年:
mes_ano <- paste(month_names, format(ex_sorted, "%Y"))
创建因素:
mes_ano_fac <- factor(as.yearmon(ex_sorted), labels = unique(mes_ano))
绘图(为了便于说明,在y轴上使用无意义的数据):
library(ggplot)
qplot(x = mes_ano_fac, y = seq(length(example)))