【问题标题】:dplyr cannot work in group by monthdplyr 不能按月分组工作
【发布时间】:2016-11-03 05:39:27
【问题描述】:

我想按月和年进行分组,但结果显示“eval(expr, envir, enclos) 中的错误:找不到对象 'MM'”。有人可以帮忙吗?谢谢!

library(dplyr)
uq_app %>% 
select(Date, sales, convs) %>%
mutate(MM= format(Date, "%m"), YY= format(Date, "%Y")) %>%
group_by(MM, YY) %>%
summarise(total_conv = sum(convs))

Date           sl convs fi op  cl
03/10/2015      0   0    0  0   0
03/10/2015      0   0   36  13  7
03/10/2015      0   0   13  6   1
03/10/2015      0   0   17  6   1
03/10/2015      0   0   1   1   0
03/10/2015      0   0   30  19  5
03/10/2015  272.6   2   13  3   2
04/10/2015      0   0   0   0   0
04/10/2015  512.2   6   56  27  7
04/10/2015  112.4   2   21  8   1
04/10/2015  142.2   1   24  11  0
04/10/2015      0   0   4   0   0
04/10/2015   60.4   1   25  11  0

【问题讨论】:

  • 请展示一个可重现的小例子。在%>%里面,你不需要uq_app$,只要format(Date, "%m")就够了
  • @akrun,我删除了它,但仍然显示相同的错误。
  • @Aramis7d,抱歉不小心删除了您的评论。它现在仍然有效。我的日期格式是“日期”
  • 如果我的原始评论仍然不起作用,它将是相关的。即显示一个可重复的小例子
  • @akrun,请看示例,谢谢

标签: r dplyr


【解决方案1】:

在提取“月”和“年”之前,我们需要转换为Date

uq_app %>% 
    mutate(Date = as.Date(Date, '%m/%d/%Y')) %>%
    group_by(MM = format(Date, '%m'), YY = format(Date, '%Y')) %>% 
    summarise(total_conv = sum(convs))
#    MM    YY total_conv
#  <chr> <chr>      <int>
#1    03  2015          2
#2    04  2015         10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2017-05-14
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    相关资源
    最近更新 更多