2013-03-18 80 views
1

我想更新与比较的另一个数据帧中的audit数据帧:总和计数

test:中数量的数据帧患者对于特定日期

test <- data.frame(
     date=as.Date(c("2012-12-12","2012-12-29","2013-01-15")), 
     patients=c(4,7,3) 
) 
     date patients 
1 2012-12-12  4 
2 2012-12-29  7 
3 2013-01-15  3 

audit审计的数据帧日期

audit <- data.frame(date=as.Date(c("2012-12-31","2013-01-31")), 
     count=c(NA)) 
     date count 
1 2012-12-31 NA 
2 2013-01-31 NA 

问:audit$count应在test UP TO audit$date患者的总数是多少?

这不起作用:

audit$count <- sum(test[test$date < audit$date,]$patients) 

如何最有效地做到这一点?

回答

2

的一种方法是使用sapplyaudit$date值:

audit$count <- sapply(audit$date, function(x) sum(test$patients[test$date < x])) 

     date count 
1 2012-12-31 11 
2 2013-01-31 14 
+0

+1!以确切的答案击败我! (即使有点晚,恭喜10k) – agstudy 2013-03-18 08:42:07

+1

@agstudy谢谢。我想,SO上的所有R用户都无法跟上你的速度。 ;-) – 2013-03-18 08:57:12