我正在尝试对每组两个日期(最小和最大)之间的行进行计数。唯一的警告是每个组都有不同的日期对。请参见下面的示例。
这是我的原始数据集。
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变量。谢谢!
答案 0 :(得分: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