Количество строк в группе между датами, R - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь подсчитать количество строк, приходящихся на две даты (минимальную и максимальную) для каждой группы. Единственное предостережение - каждая группа имеет разные пары дат. Смотрите пример ниже.

Это мой набор необработанных данных.

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. Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2018

Указан диапазон дат или вы также хотите рассчитать его по данным. Если позже верно, то это должно сделать это.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...