Как отфильтровать набор данных за определенный диапазон дат? - PullRequest
0 голосов
/ 11 декабря 2018

Если у меня есть набор данных и я хочу суммировать определенный столбец на основе определенного диапазона дат в r?например Dataset

Guest  Sales  date
A        50      2018-08-10
B        180     2018-08-10
C         20     2018-08-15
D         390    2018-08-20

И я хочу сумму продаж между 2018-08-10 и 2018-08-16?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Решение с библиотекой dplyr:

library(dplyr)
df %>% 
  filter(date > "2018-08-10" & date < "2018-08-16") %>% 
  summarise(sum_sales = sum(Sales))
#    sum_sales
# 1        20

Данные:

df <- data.table::fread("Guest  Sales  date
                         A        50      2018-08-10
                        B        180     2018-08-10
                        C         20     2018-08-15
                        D         390    2018-08-20", data.table=FALSE)
0 голосов
/ 11 декабря 2018

Вы можете попробовать:

sum(df[df$date >="2018-08-10" & df$date<="2018-08-16",]$Sales)

или

sum(subset(df, date>="2018-08-10" & date<="2018-08-16")$Sales)

Для воспроизводства:

df <- data.table::fread("Guest  Sales  date
                         A        50      2018-08-10
                         B        180     2018-08-10
                         C         20     2018-08-15
                         D         390    2018-08-20")
...