r - 在 R 中聚合条件
问题描述
我有一个数据框:
df <- data.frame(Xdate = c("21-jul-2020", "29-jul-2020", "20-jul-2020", "13-may-2020" ),
names = c("peter", "lisa","peter", "lisa"),
score = c(1,3,5,7))
获取最新分数的最优雅方式是什么:
df_result <- data.frame(names = c("peter", "lisa"),
score = c(1, 3))
peter 的最新分数是 1 并且达到了21-jul-2020
lisa 的最新分数是 3 并且达到了29-jul-2020
.
解决方案
您可以使用取代version 之后slice_max()
的 in来选择最近的日期。dplyr
top_n()
1.0.0
library(dplyr)
df %>%
mutate(Xdate = as.Date(Xdate, "%d-%b-%Y")) %>%
group_by(names) %>%
slice_max(Xdate, n = 1) %>%
ungroup()
# # A tibble: 2 x 3
# Xdate names score
# <date> <chr> <dbl>
# 1 2020-07-29 lisa 3
# 2 2020-07-21 peter 1
推荐阅读
- sharepoint - 如何通过在 csom/odata 中装饰用户代理来避免对共享点的限制
- c++ - 为什么不能重载 test2 + test3 的 operator<<?
- python - 如果谜题无法解决,我如何退出数独求解器功能?
- node.js - 如何使用 NodeJS 和 soap 模块使用发送证书 JKS 的 Web 服务?
- java - javax.naming.namingexception 访问存储库时出错:无法连接到 orb
- sql - 执行 sql 查询以使用 VBA 更新文本文件
- excel - Excel 错误或功能:“IF”不区分大小写?
- keycloak - 在docker中更改keycloak的默认端口
- c# - NuGet.Config 未由 nuget CLI 源命令更新
- shiny - R Shiny:如何使用 tagList() 中的参数来运行函数?