R:过去 365 天的 RunningTotal window 按名称
R: RunningTotal in the last 365 days window by Name
这是我的数据的样子。最右边的列是我想要的列。
Name EventType EventDate SalesAmount RunningTotal Runningtotal(prior365Days)
John Email 1/1/2014 0 0 0
John Sale 2/1/2014 10 10 10
John Sale 7/1/2014 20 30 30
John Sale 4/1/2015 30 60 50
John Webinar 5/1/2015 0 60 50
Tom Email 1/1/2014 0 0 0
Tom Sale 2/1/2014 15 15 15
Tom Sale 7/1/2014 10 25 25
Tom Sale 4/1/2015 25 50 35
Tom Webinar 5/1/2015 0 50 35
我只是想获取每个名称在过去 365 天 window 中的 运行 总销售额 window。对于我使用的一般 "RunningTotal" 列:
df<- df%>%
group_by (Name)%>%
mutate(RunningTotal = cumsum(SalesAmount))
但我不知道如何在过去的 365 天 window.Kindly 帮助中获得 运行 总数。衷心感谢您的帮助!
df$EventDate <- as.Date(df$EventDate, format="%d/%m/%Y")
df <- df %>%
group_by (Name) %>%
arrange(EventDate) %>%
mutate(day = EventDate - EventDate[1])
f <- Vectorize(function(i)
sum(df[df$Name[i] == df$Name & df$day[i] - df$day >= 0 &
df$day[i] - df$day <= 365, "SalesAmount"]), vec="i")
df$RunningTotal365 <- f(1:nrow(df))
这是我的数据的样子。最右边的列是我想要的列。
Name EventType EventDate SalesAmount RunningTotal Runningtotal(prior365Days)
John Email 1/1/2014 0 0 0
John Sale 2/1/2014 10 10 10
John Sale 7/1/2014 20 30 30
John Sale 4/1/2015 30 60 50
John Webinar 5/1/2015 0 60 50
Tom Email 1/1/2014 0 0 0
Tom Sale 2/1/2014 15 15 15
Tom Sale 7/1/2014 10 25 25
Tom Sale 4/1/2015 25 50 35
Tom Webinar 5/1/2015 0 50 35
我只是想获取每个名称在过去 365 天 window 中的 运行 总销售额 window。对于我使用的一般 "RunningTotal" 列:
df<- df%>%
group_by (Name)%>%
mutate(RunningTotal = cumsum(SalesAmount))
但我不知道如何在过去的 365 天 window.Kindly 帮助中获得 运行 总数。衷心感谢您的帮助!
df$EventDate <- as.Date(df$EventDate, format="%d/%m/%Y")
df <- df %>%
group_by (Name) %>%
arrange(EventDate) %>%
mutate(day = EventDate - EventDate[1])
f <- Vectorize(function(i)
sum(df[df$Name[i] == df$Name & df$day[i] - df$day >= 0 &
df$day[i] - df$day <= 365, "SalesAmount"]), vec="i")
df$RunningTotal365 <- f(1:nrow(df))