Ich möchte die Summe der Verkäufe vom Anfang des Jahres bis zum neuesten Datum berechnen.R: Berechnung Jahr bis Datum Summe
Meine Daten:
ID Date Sales
1 11-2016 100
1 12-2016 100
1 01-2017 200
1 02-2017 300
MY YTD 200 + 300
Ich möchte die Summe der Verkäufe vom Anfang des Jahres bis zum neuesten Datum berechnen.R: Berechnung Jahr bis Datum Summe
Meine Daten:
ID Date Sales
1 11-2016 100
1 12-2016 100
1 01-2017 200
1 02-2017 300
MY YTD 200 + 300
sein sollte ich nehme an, Sie Date
Feld ist character
und die letzten vier Ziffern stellen year
.
Dann können Sie auswählen, wo er mit unter dem aktuellen Jahr entspricht:
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
Aber ich kann nicht Sys.Date verwenden als 02-2017 nicht das aktuelle Datum ist – aannie
'year (Sys.Date())' gibt '2017' zurück –
Sie müssen das' lubridate' Paket laden, um 'year()' –
Dadurch werden alle Werte für das laufende Kalenderjahr summieren sum(df$Sales[format(df$Date, "%Y") == format(Sys.Date(), "%Y")])
- Sie benötigen Ihre df$Date
Variable Klasse Date ist
Sie könnten dplyr
verwenden, um nach Jahr zusammenzufassen. lubridate
ist auch nützlich, um group_by
Jahre:
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
Ich weiß, es ist 500, ich möchte es für größere Daten verwenden :) – aannie