R:计算年初至今的总和

时间:2017-04-20 13:19:27

标签: r

我想计算从年初到最新日期的销售总额。

我的数据:

ID  Date     Sales
1   11-2016  100
1   12-2016  100
1   01-2017  200
1   02-2017  300

MY YTD应为200 + 300

3 个答案:

答案 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按年汇总。 lubridategroup_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