我想计算从年初到最新日期的销售总额。
我的数据:
ID Date Sales
1 11-2016 100
1 12-2016 100
1 01-2017 200
1 02-2017 300
MY YTD应为200 + 300
答案 0 :(得分:0)
我认为您Date
字段为character
,后四位数字代表year
。
然后您可以使用以下内容过滤它等于当前年份的位置:
df<-read.table(text="ID Date Sales
1 11-2016 100
1 12-2016 100
1 01-2017 200
1 02-2017 300",header=T)
sum(df[substr(df$Date,4,7)==format(Sys.Date(),"%Y"),]$Sales)
[1] 500
答案 1 :(得分:0)
这将汇总当前日历年sum(df$Sales[format(df$Date, "%Y") == format(Sys.Date(), "%Y")])
的所有值 - 您可能需要确保df$Date
变量属于日期
答案 2 :(得分:0)
您可以使用dplyr
按年汇总。 lubridate
对group_by
年也很有用:
df1<-read.table(text="ID Date Sales
1 11-2016 100
1 12-2016 100
1 01-2017 200
1 02-2017 300",header=TRUE, stringsAsFactors=FALSE)
df1$Date <- as.yearmon(df1$Date,format="%m-%Y")
library(dplyr);library(lubridate)
df1%>%
group_by(Year=year(Date))%>%
summarise(Sales=sum(Sales))
Year Sales
<dbl> <int>
1 2016 200
2 2017 500