2017-03-23 6 views
1

データフレームには、3つの日付列と1つの数値列があります。最初の1つは、顧客が購入を開いたとき、2番目は購入の期日、3番目はその値、最後の列は顧客が支払ったときです。データフレーム内の2つの条件で値を合計します。R

私は、購入金額を日付別に合計したいと思っています。これは、未払い金額だけではなく、期限よりも短いことを意味します。データフレームは以下の通りです:このように

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) 

答えて

1

library(dplyr) 
today <- Sys.Date() 
base %>% group_by(open) %>% summarize(value_open = sum(purchase[today < due || is.na(paid)])) 
関連する問題