Суммировать значение на основе другого столбца на основе заданного диапазона данных c - PullRequest
0 голосов
/ 24 января 2020

У меня есть набор данных ниже:

name<-c("John","John","John","John","John","John","John")
Dealer<-c("ASD","ASD","ASD","ASD","ASD","ASD","ASD")
Date<-c("2020-01-03","2020-01-04","2020-01-05","2020-01-06","2020-01-07","2020-01-08","2020-01-09")
dataset<-data.frame(name,Dealer,Date)

, и я хочу создать фрейм данных, который будет суммироваться по Dealer, показывая номер предыдущего дня name и число последних 7 дней name на основе тот факт, что мы в самой последней дате ("2020-01-09"). Таким образом, новый фрейм данных будет выглядеть так:

Dealer2 PreviousDay PreviousWeek
     ASD           1            7

1 Ответ

1 голос
/ 24 января 2020

Мы можем arrange данные, основанные на Date и подсчитывать количество записей, которые мы имеем за второй последний день, и количество записей, которые мы имеем за последние 7 дней для каждого Dealer.

library(dplyr)

dataset %>%
  mutate(Date = as.Date(Date)) %>%
  arrange_all %>%
  group_by(Dealer) %>%
  summarise(PreviousDay = sum(Date == last(Date) - 1), 
            PreviousWeek = sum(Date %in% (last(Date) - 7) : last(Date)))

# A tibble: 1 x 3
#  Dealer PreviousDay PreviousWeek
#  <fct>        <int>        <int>
#1 ASD              1            7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...