2017-03-23 1 views
1

Ich habe einen Datenrahmen mit drei Datumsspalten und einer numerischen Spalte. Der erste ist, wenn der Kunde den Kauf beginnt, der zweite das Fälligkeitsdatum des Kaufs, der dritte ist der Wert davon und die letzte Spalte ist, wenn der Kunde bezahlt hat.Summiere einen Wert mit zwei Bedingungen in einem Datenrahmen in R

Ich möchte den Wert der Einkäufe nach Datum, die Menge der offenen Käufe summieren - was bedeutet, nicht nur nicht bezahlt, sondern weniger als die fällige Zeit. Der Datenrahmen ist unter:

set.seed(3) 
open <- as.Date(rep(c("2017-03-22","2017-03-23","2017-03-24","2017-03-25"), 3), format = "%Y-%m-%d") #Purchase's open date 
due <- open + 3 #Due date's purchase 
purchase <- purchase <- round(runif(12, 50,150),2) #Quando ele gastou 
paid <-  as.Date(c("2017-03-22",NA,"2017-03-24","2017-03-25",NA,"2017-03-23",NA,"2017-03-25",NA,"2017-03-23",NA,NA)) #Value of purchase 

base <- data.frame(open,due,purchase,paid) 

Antwort

1

So:

library(dplyr) 
today <- Sys.Date() 
base %>% group_by(open) %>% summarize(value_open = sum(purchase[today < due || is.na(paid)])) 
Verwandte Themen