R按日期和Group_By Dplyr分组的列不起作用

时间:2018-07-29 00:36:16

标签: r sorting group-by dplyr

我的数据是这样的

  Date           Company          State       Sales
2018-07-01      McDonalds        Michigan     1.2 mn
2018-07-02      McDonalds        Michigan     1.1 mn 
2018-07-03      McDonalds        Ohio         1.4 mn
2018-07-04      McDonalds        Indiana      1.4 mn
2018-07-05      McDonalds        Indiana      1.7 mn
2018-07-01      BurgerKing       Michigan     1.1 mn
2018-07-02      Burgerking       Michigan     1.4 mn
2018-07-03      Burgerking       Ohio         1.0 mn
2018-07-04      Burgerking       Indiana      1.8 mn
2018-07-05      Burgerking       Indiana      1.2 mn
2018-07-01      Wendy's          Michigan     1.4 mn
2018-07-02      Wendy's          Michigan     1.7 mn
2018-07-03      Wendy's          Ohio         1.2 mn
2018-07-04      Wendy's          Indiana      1.1 mn
2018-07-05      Wendy's          Indiana      1.4 mn

我想按日期对数据进行分组,并检查每个公司在特定日期在各州的表现。像这样

  Date           Company          State       Sales
2018-07-01      McDonalds        Michigan     1.2 mn
2018-07-01      BurgerKing       Michigan     1.1 mn 
2018-07-01      Wendy's          Michigan     1.4 mn
2018-07-02      McDonalds        Michigan     1.1 mn
2018-07-02      BurgerKing       Michigan     1.4 mn
2018-07-02      Wendy's          Michigan     1.7 mn
2018-07-03      McDonalds        Ohio         1.4 mn
2018-07-03      BurgerKing       Ohio         1.0 mn
2018-07-03      Wendy's          Ohio         1.2 mn
2018-07-04      McDonalds        Indiana      1.4 mn

我像group_by一样尝试过df%>%group_by(Date)%>% arrange(Company,State)(dplyr),但看不到数据有任何变化。 “日期”类为“因子”,当我尝试使用as.date(Date,format)将其更改为Date to date类时,我收到错误Error in as.date(df$Date) : could not find function "as.date"

如果您知道如何排列数据,请帮助我。

1 个答案:

答案 0 :(得分:1)

这是您想要的吗?

 库(dplyr)
安排(df,日期,公司,州)
         日期公司状态销售
1 2018-07-01汉堡王密歇根州1.1
2 2018-07-01麦当劳密歇根州1.2
3 2018-07-01温迪的密歇根州1.4
4 2018-07-02汉堡王密歇根州1.4
5 2018-07-02麦当劳密歇根州1.1
6 2018-07-02温迪的密歇根州1.7
7 2018-07-03汉堡王汉堡1.0
8 2018-07-03俄亥俄州麦当劳1.4
9 2018-07-03温迪的俄亥俄州1.2
10 2018-07-04汉堡王印第安纳州1.8
11 2018-07-04麦当劳印第安纳州1.4
12 2018-07-04温迪的印第安纳州1.1
13 2018-07-05汉堡王印第安纳州1.2
14 2018-07-05麦当劳印第安纳州1.7
15 2018-07-05温迪的印第安纳州1.4
 

如果您不希望名称按字母顺序排序,则需要将字符向量转换为因子。例如,

  df $ Company <-factor(df $ Company,level = c(“ McDonalds”,“ Burgerking”,“ Wendy's”))
安排(df,日期,公司,州)
         日期公司状态销售
1 2018-07-01麦当劳密歇根州1.2
2 2018-07-01汉堡王密歇根州1.1
3 2018-07-01温迪的密歇根州1.4
4 2018-07-02麦当劳密歇根州1.1
5 2018-07-02汉堡王密歇根州1.4
6 2018-07-02温迪的密歇根州1.7
7 2018-07-03麦当劳俄亥俄州1.4
8 2018-07-03汉堡王汉堡1.0
9 2018-07-03温迪的俄亥俄州1.2
10 2018-07-04麦当劳印第安纳州1.4
11 2018-07-04汉堡王印第安纳州1.8
12 2018-07-04温迪的印第安纳州1.1
13 2018-07-05麦当劳印第安纳州1.7
14 2018-07-05汉堡王印第安纳州1.2
15 2018-07-05温迪的印第安纳州1.4