【问题标题】:summarizing a field based on the value of another field in dplyr根据 dplyr 中另一个字段的值总结一个字段
【发布时间】:2014-11-03 20:45:29
【问题描述】:

我有一个包含四个字段的数据框 DF:id, date, feature, value。我想生成一个包含三个字段的数据框 DF2:id, feature, value,其中value 是对应的id 的值,feature 是最新可用的date。用 plyr 的话说:

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

我对如何使用 dplyr 使用 group_by 和 summarise 来实现这一点有点茫然。

【问题讨论】:

  • 可重现的数据集和所需的输出将保证您在 5 分钟内得到 3 个答案

标签: r dplyr


【解决方案1】:

这只是您在 dplyr 中的 plyr 调用的直接翻译:

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

【讨论】:

  • 谢谢,很有魅力。只需稍作修改,因为最近日期可能有多个记录。
  • 酷,我已经更新了我的答案以考虑到这一点
猜你喜欢
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 2021-12-14
  • 2017-11-30
相关资源
最近更新 更多