R:如何按月订购数据框

时间:2015-03-07 04:26:29

标签: r

我有这个数据框:

    year    Mes        Sesiones
1   2014    Abril       25721
2   2014    Agosto      14851
3   2014    Diciembre   71359
4   2014    Enero       2244
5   2014    Febrero     3149
6   2014    Julio       11540
7   2014    Junio       18648
8   2014    Marzo       10738
9   2014    Mayo        19151
10  2014    Noviembre   149655
11  2014    Octubre     42032
12  2014    Setiembre   33667
13  2015    Enero       41885
14  2015    Febrero     81120

我已经应用这个来制作colum“Mes”(最初是一个字符列),一个因子列(具有有序级别):

IkasaVisitas_Meses_Meses$Mes <- factor(IkasaVisitas_Meses_Meses$Mes,
                                       levels = c("Enero", "Febrero", "Marzo", "Abril",
                                                  "Mayo", "Junio", "Julio", "Agosto",
                                                  "Setiembre", "Octubre", "Noviembre", 
                                                  "Diciembre"),
                                       ordered=TRUE)

但是我仍然可以按照原样订购月份:“Enero”,“Febrero”......“Diciembre”。我知道这很容易接受,所以如果你能指出我的好参考就会很高兴。

要创建此数据框,我使用此代码(使用dplyr): 我的意思是这个原因,“group_by”在其他情况下给我带来了一些问题:

IkasaVisitas_Meses_Meses <- IkasaVisitas_Meses  %>%
                          group_by(year,Mes) %>%
                          summarise (Sesiones = sum(Sesiones))

1 个答案:

答案 0 :(得分:1)

因为,从您的评论中听起来它起作用,这是完整的答案:

更改为某个因素是一个好主意(它不一定是有序因子,更多是建模惯例)。

使用arrange订购行,使用ungroup()删除分组:

IkasaVisitas_Meses_Meses <- IkasaVisitas_Meses  %>%
  group_by(year,Mes) %>%
  summarise (Sesiones = sum(Sesiones)) %>%
  mutate(Mes = factor(Mes,
                      levels = c("Enero", "Febrero", "Marzo", "Abril",
                                 "Mayo", "Junio", "Julio", "Agosto",
                                 "Setiembre", "Octubre", "Noviembre", 
                                 "Diciembre")) %>%
  # if you don't want the re-rordering to be within-group
  ungroup() %>%
  arrange(Mes)