r - 按 ID [in R] 计算日期(按顺序)
问题描述
我想计算一个按客户日期计算订单的列。
这里有一些玩具代码:
Date <- as.Date(c('2006-08-30','2006-08-23', '2006-09-06', '2006-09-13', '2006-09-20'))
ID <- c("x1","x1","X2","X3","x1")
TransNo<-c("123","124","125","126","127")
df<-data.frame(ID,Date,TransNo)
我的预期结果如下所示,其中“Times”是所需的变量:
ID Date TransNo Times
1 x1 2006-08-30 123 2
2 x1 2006-08-23 124 1
3 X2 2006-09-06 125 1
4 X3 2006-09-13 126 1
5 x1 2006-09-20 127 3
我尝试了一些带有 count / n 或长度的聚合和 dplyr 解决方案。不知道是什么解决了这个问题,但它不能是火箭科学。
任何帮助都会很棒!谢谢大家
解决方案
这是做你想做的吗?
df<-data.frame(ID,Date,TransNo) %>%
arrange(Date) %>%
group_by(ID) %>%
mutate(dummy = 1) %>%
mutate(times = cumsum(dummy)) %>%
select(-dummy)
返回
ID Date TransNo times
<fct> <date> <fct> <dbl>
1 x1 2006-08-23 124 1
2 x1 2006-08-30 123 2
3 X2 2006-09-06 125 1
4 X3 2006-09-13 126 1
5 x1 2006-09-20 127 3
推荐阅读
- python - 具有像素值列表的图像掩码
- html - 将 PDF 作为表单数据发送 / Integromat Webhook
- flutter - 在 Flutter 中使用 collectionGroup 从 Firestore 中检索数据
- flutter - 在 Flutter 中为 SliverList 添加搜索功能
- python - 并行化令人尴尬的可并行化生成器的简单方法
- bash - Bash对话框功能不显示
- r - 如何在 CentOS 上升级 R
- python - 我们如何遍历文件夹中的文本文件,复制每个文件中的前 2 行,然后转置结果?
- list - 将复杂术语转换为列表列表,然后使用修改后的函子返回术语
- swift - 如何将 var 从一个 viewModel 传递到我的 .fullScreenCover() 视图中的新 viewModel?