好的,我有一点菜鸟问题,所以请原谅。我有一个数据框对象如下:
| order_id| department_id|department | n|
|--------:|-------------:|:-------------|--:|
| 1| 4|produce | 4|
| 1| 15|canned goods | 1|
| 1| 16|dairy eggs | 3|
| 36| 4|produce | 3|
| 36| 7|beverages | 1|
| 36| 16|dairy eggs | 3|
| 36| 20|deli | 1|
| 38| 1|frozen | 1|
| 38| 4|produce | 6|
| 38| 13|pantry | 1|
| 38| 19|snacks | 1|
| 96| 1|frozen | 2|
| 96| 4|produce | 4|
| 96| 20|deli | 1|
这是我用来达到这个目标的代码:
temp5 <- opt %>%
left_join(products,by="product_id")%>%
left_join(departments,by="department_id") %>%
group_by(order_id,department_id,department) %>%
tally() %>%
group_by(department_id)
kable(head(temp5,14))
如您所见,该对象包含每个Order_id
中存在的部门。现在,我想要做的是,我想计算每个order_id
我尝试在summarise()
包中使用dplyr
方法,但它会引发以下错误:
summarise_impl(.data,dots)中的错误: 评估错误:对于“因子”类对象的“组”没有适用的方法。
看起来很简单,但无法弄清楚如何去做。任何帮助将不胜感激。
编辑:这是我试图运行的代码,我在count()
包中读到了关于plyr
函数的帖子,我也尝试使用它,但这没用因为它需要一个数据帧作为输入,而我只想计算数据帧中出现次数
temp5 <- opt %>%
+ left_join(products,by="product_id")%>%
+ left_join(departments,by="department_id") %>%
+ group_by(order_id,department_id,department) %>%
+ tally() %>%
+ group_by(department_id) %>%
+ summarise(count(department))
在输出中,我需要知道平均值。从每个订单ID订购的部门,所以我需要这样的东西:
Order_id | no. of departments
1 3
36 4
38 4
96 3
然后我应该能够在每个顺序中使用ggplot,no. of orders
vs no. of departments
进行绘图。希望这很清楚