【问题标题】:Count of rows per group between dates, R日期之间每组的行数,R
【发布时间】:2018-11-01 00:06:59
【问题描述】:

我正在尝试计算每组两个日期(最小和最大)上和之间的行数。唯一需要注意的是每个组都有不同的日期对。请参见下面的示例。

这是我的原始数据集。

raw <- data.frame ("Group" = c("A", "B", "A", "A", "B"), "Date" = c("2017-01-01", "2017-02-02", "2017-09-01", "2017-12-31", "2017-05-09"))

我希望它返回这个...

clean <- data.frame ("Group" = c("A", "B"), "Min" = c("2017-01-01", "2017-02-02"), "Max" = c("2017-12-31", "2017-05-09"), "Count" = c(3, 2))

我怎么能做到这一点? mix 和 max 变量并不重要,但肯定想知道如何做 count 变量。谢谢!

【问题讨论】:

  • MinMax 列是给定的,还是它们始终只是组中的最大和最小日期?如果是前者,这些日期的格式是否与您的示例中的格式相同,只是没有Count 列?如果是后者,那么日期与 Count 列无关,您所需要的只是每个组的实例。

标签: r


【解决方案1】:

日期范围已给定,或者您也想从数据中计算出来。如果稍后是真的,那么应该这样做。

require(tidyverse)
raw %>% 
  mutate(Date = as.Date(Date)) %>% 
  group_by(Group) %>% 
  summarise(min_date = min(Date), max_date = max(Date), count = n())

输出:

# A tibble: 2 x 4
  Group min_date   max_date   count
  <fct> <date>     <date>     <int>
1 A     2017-01-01 2017-12-31     3
2 B     2017-02-02 2017-05-09     2

【讨论】:

  • 这很有帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
相关资源
最近更新 更多