2017-03-08 5 views
1

Ich habe tägliche Verkaufszahlen.Werte basierend auf zwei nicht aufeinander folgenden Datensätzen umwandeln

set.seed(24) 
Values <- as.data.frame(matrix(sample(0:200,70*10, replace=TRUE), ncol=1)) 
Daily <- as.data.frame(seq(as.Date("2014/1/1"), by = "day", length.out = 700)) 
Sales <- cbind(Values,Daily) 
colnames(Sales) <- c("values","daily") 

Ich habe auch, wie viel von den nächsten Verkaufszahlen (von Lohn) verloren und wird drei Mal pro Monat (nicht in regelmäßigen Abständen) projiziert. Dies wird als Prozentsatz des täglichen Umsatzes ausgedrückt.

Three_month <- c('2014-01-01','2014-01-12','2014-01-21','2014-02-03','2014-02-11','2014-02-20', 
     '2014-03-04','2014-03-13','2014-03-20','2014-04-01','2014-04-11','2014-04-23', 
     '2014-05-05','2014-05-12','2014-05-21','2014-06-03','2014-06-11','2014-06-20', 
     '2014-07-04','2014-07-13','2014-07-20','2014-08-01','2014-08-11','2014-08-23', 
     '2014-09-05','2014-09-12','2014-09-21','2014-10-03','2014-10-11','2014-10-20', 
     '2014-11-04','2014-11-13','2014-11-20','2014-12-01','2014-12-11','2014-12-23', 
     '2015-01-05','2015-01-12','2015-01-21','2015-02-03','2015-02-11','2015-02-20', 
     '2015-03-04','2015-03-13','2015-03-20','2015-04-01','2015-04-11','2015-04-23', 
     '2015-05-05','2015-05-12','2015-05-21','2015-06-03','2015-06-11','2015-06-20', 
     '2015-07-04','2015-07-13','2015-07-20','2015-08-01','2015-08-11','2015-08-23', 
     '2015-09-05','2015-09-12','2015-09-21','2015-10-03','2015-10-11','2015-10-20', 
     '2015-11-04','2015-11-13','2015-11-20','2015-12-01','2015-12-11','2015-12-23') 
Three_month <- as.data.frame(Three_month) 
Three_month$Three_month <- as.Date(Three_month$Three_month) 
Percentage <- as.data.frame(matrix(sample(0:15,7.2*10, replace=TRUE), ncol=1)) 
Losses <- cbind(Three_month,Percentage) 
colnames(Losses) <- c("three_month","percentage") 

Meine Frage ist, wie kann ich täglich Umsatz erhalten projiziert, wobei die prozentualen Verluste werden wieder auf die ursprünglichen Werte hinzugefügt? Sagen Sie zum Beispiel die ersten beiden Werte, wenn im Datenfeld "Verluste" 10% und 15% enthalten sind. Wie kann ich eine Variable erstellen, die jeden "Wert" + 10% des Werts vom 01.01.2014 bis 2014 berechnet? 01-11 und dann jeder "Wert" + 15% des Wertes vom 2014-01-12 bis 2014-01-20 (und so weiter).

Antwort

2

können Sie versuchen:

Sales$newcol<-Sales$values* 
     (Losses$percentage[findInterval(Sales$daily,Losses$three_month)]/100+1) 
+0

Perfect! Vielen Dank –

Verwandte Themen