2017-04-20 86 views
1

我想計算從一年的開始到最新日期的銷售額總和。R:計算年初至今的金額

我的數據:

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

MY YTD應爲200 + 300

+0

我知道這是500,我想使用它的更大的數據:) – aannie

回答

0

我假設你Datecharacter和最後四位數字表示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 
+0

但我不能用Sys.Date爲02-2017不是當前日期 – aannie

+0

'year(Sys.Date())'將返回'2017' –

+0

您將需要加載'lubridate'包以使用'year()' –

0

這將總結所有值當前歷年sum(df$Sales[format(df$Date, "%Y") == format(Sys.Date(), "%Y")]) - 你可能需要確保你的df$Date變量是類Date的

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