【问题标题】:Instead of week number, is it possible to get a date range?是否可以获得日期范围而不是周数?
【发布时间】:2020-09-04 19:57:38
【问题描述】:
structure(list(ReviewType= c("Primary", "Secondary", "Secondary", "Primary", "Secondary"), Submissiondate= c("2020-09-04", "2020-09-03","2020-09-02","2020-09-01","2020-08-31" ),Channel= c("OC", "BC","BC","BC","PK" )), class = "data.frame", row.names = c(NA, -5L))

我在下面有一个查询以及其他我想编辑的查询,而不是给我周数,而是告诉我该周的日期范围:

FinalCounting<-Out %>%
  group_by(Year = year(Submissiondate), Week = week(Submissiondate)) %>% 
  summarise(Primary = sum(ReviewType == "Primary"), 
            Secondary = sum(ReviewType == "Secondary"))

当查询运行时,它会给出如下输出:

如果我得到的不是 36,而是 2020-08-31 - 2020-09-04,甚至只是这个范围的最后一个日期,所以我可以称之为截至报告日期,这可能吗?任何帮助表示赞赏。

【问题讨论】:

  • 请在问题中提供dput(head(Out))
  • 它现在就在那里。
  • Piccinin1992,您粘贴的 structure 无效。删除一个额外的右括号对我来说是有意义的,但很明显,当您从控制台复制它时,您对它做了一些事情(例如删除敏感/不必要的数据,这很好)。请再次edit 以包含有效结构。谢谢!
  • 现在请看,希望没问题。

标签: r dplyr lubridate


【解决方案1】:

只需使用Week = paste(lubridate::floor_date(Submissiondate, unit = "weeks"), "-", lubridate::ceiling_date(Submissiondate, unit = "weeks")) 创建一个列。

您应该可以将其直接放入 group_by 语句或之前的 mutate 中(以提高可读性)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-11
    • 2021-04-14
    • 2023-03-16
    • 2018-05-03
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多