r - 在 R 中按组和按时间计算最大值
问题描述
对于以下面板数据(跟踪单元“ID”超过“时间”的值:
ID=c(1,1,1,1,2,2,2,2)
Time=c(1,2,3,4,1,2,3,4)
Value=c(1,5,4,8,2,5,9,7)
我想创建一个向量,它是每个“ID”和“时间”的最大值
输出向量“Max_Value”如下:
Max_Value=c(1,5,5,8,2,5,9,9)
澄清一下,这里是如何为 ID“1”计算 Max_Value。
对于ID“1”,“Time=1”的最大值为1,最大值为{1}。
同样,对于ID“1”,“Time=2”的最大值为5,最大值为{1,5}。
同样,对于 ID“1”,“Time=3”的最大值为 5,即最大值为 {1,5,4}。
解决方案
由于我自己无法添加评论,我建议使用@markus 输入:
library(dplyr)
ID=c(1,1,1,1,2,2,2,2)
Time=c(1,2,3,4,1,2,3,4)
Value=c(1,5,4,8,2,5,9,7)
tbl <- tibble(ID = ID, Time = Time, Value = Value)
tbl %>% group_by(Time, ID) %>% mutate(result = max(Value)) ## shouldnt work
tbl %>% group_by(ID) %>% mutate(Max_Value = cummax(Value)) ## should work
推荐阅读
- go - 创建用于解组以下 yaml 文件的 go 结构的更好方法是什么?
- python - 从裁剪区域中提取像素数
- azure-devops - 使用 Azure Pipelines 将用户名和密码添加到 yaml 配置文件
- go - 服务器关闭请求流时如何关闭 HTTP/2 客户端流?
- jquery - 如何通过 $.post 方法发送查询参数?
- mysql - 带有日期过滤器但使用系统年份的 SQL 查询
- cluster-analysis - 为 Kmeans 聚类选择 K 值
- window - 在 Windows 10 中找不到 Inf2Cat
- swift - 让听众知道何时在 dynamodb 中更新了令人兴奋的项目
- asp.net-core-webapi - LINQ 查询仅选择内部列表(JSON 响应中的问题)