[英]aggregate by past dates (12 months) in R
我正在嘗試按日期匯總/匯總數據。 為簡單起見,在下面的數據示例中,我僅需要對第4行執行此操作。 例如,第4行中的日期為“ 2014-06-06”(2014年6月),因此我想對過去12個月(即2013-06-01至2014年)的所有日期的價格和增值稅(按Group_ID)求和-05-31(即第1,2,3,6行的總和)。
Date Price Vat Group_ID
2014-01-10 705000 5023.00 A
2014-05-11 580000 6786.00 A
2014-05-19 333000 1809.84 A
2014-06-06 213000 1875.00 A (need result for this row only)
2014-06-21 310000 1905.96 B
2013-06-30 280000 3227.00 A
2014-06-22 280000 3227.00 B
2014-06-16 280000 3227.00 B
2014-06-15 280000 3227.00 B
2013-05-18 280000 3227.00 A
第4行的預期結果將是:
Date S_Price S_Vat Group_ID
2014-06-06 1898000 16845.84 A
您可以使用lubridate和之間來創建具有目標日期的組,然后匯總數據框。 這是我的解決方案:
library(tidyverse)
library(lubridate)
df_2 <- df %>%
mutate(target_date = case_when(
between(Date,ymd("2013-06-01"),ymd("2014-05-31")) ~"2014-06-06",
TRUE ~"0"
)) %>%
group_by(target_date, Group_ID) %>%
summarise(S_price = sum(Price),
S_Vat = sum(Vat)) %>%
filter(target_date == "2014-06-06")
df_2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.