r - 汇总具有相同标识符的行,其中最早开始和最晚结束以及data.table R中的最大值
问题描述
下列的data.table
dt <- data.table(
ID= c(1,2,2,2,2),
Value1 = c('a','b','a','a','a'),
Start = c('2001-01-01','2000-01-01','2000-02-02','2000-03-03','2000-03-03'),
End = c('2002-01-01','2001-01-01','2001-02-02','2001-03-03','2001-03-03'),
Value_max = c(2,50,20,40,80)
)
ID Value1 Start End Value_max
1: 1 a 2001-01-01 2002-01-01 2
2: 2 b 2000-01-01 2001-01-01 50
3: 2 a 2000-02-02 2001-02-02 20
4: 2 a 2000-03-03 2001-03-03 40
5: 2 a 2000-03-03 2001-03-03 80
我想将具有相同的行组合ID
并Value1
提取最早Start
、最新End
和最高Value_max
。我用过dt[,SD.[which.max(Value_max)],by=.c(ID,Value1)]
但不知道如何将它与最早的开始和结束日期结合起来。
解决方案
min
max
似乎就足够了:
dt[,.(earliest = min(Start),latest = max(End), value_max = max(Value_max)),by=.(ID,Value1)]
ID Value1 earliest latest value_max
1: 1 a 2001-01-01 2002-01-01 2
2: 2 b 2000-01-01 2001-01-01 50
3: 2 a 2000-02-02 2001-03-03 80
推荐阅读
- javascript - 可以重置而不重叠的计时器?- Javascript
- wordpress - 为 foreach 提供的 Wordpress 无效参数
- r - 汇总不同组时的数据
- nginx - nginx 的 ngx_http_limit_conn_module 不适用于 https
- windows - “无法加载 Firebase,因为在此系统上禁用了运行脚本”,Windows 上的 VSCode
- python - 如何在 Python(或 SAS)中向时间序列数据集插入 0 值?
- python - Keras 中嵌入层的大小问题
- javascript - window.prompt() 可以比经典形式更安全吗?
- azure-devops - 如何更改 azure devops 脚本执行路径
- php - 如何正确地将 PHP 对象转换为数组并删除其中的元素?