2014-11-03 122 views
-2

我有一個數據幀DF,其中有四個字段:id, date, feature, value。我想生成具有三個字段的數據幀DF2:id, feature, value,其中value是最新的可用date對應的idfeature的值。在plyr說法:根據dplyr中另一個字段的值總結一個字段

DF2 <- ddply(DF, .(id, feature), function(x) c(value(x$value[x$date == max(x$date)])) 

我有點就如何與dplyr使用GROUP_BY實現這一目標,並總結了損失。

+3

一個可重複的數據集和所需的輸出將保證你在5分鐘內3個答案 – 2014-11-03 20:48:33

回答

1

這是dplyr您plyr通話只是直接翻譯:

library(dplyr) 
DF2 = summarise(group_by(DF, id, feature), value=value[which(date == max(date))]) 
+0

謝謝,擔任魅力。只需稍作修改即可,因爲最近的日期可能有多條記錄。 – gappy 2014-11-03 21:15:53

+0

很酷,我已經更新了我的回答,將其納入考慮 – 2014-11-03 21:18:53

+0

'last()'會更易讀 – hadley 2014-11-05 15:23:49

相關問題