r - 在 r 中插入缺少周数的行
问题描述
对于大型数据集,我尝试为每个客户 ID 插入缺失的周数,其对应的数量为 0。周从 w3 开始,一直到 w7。
df <- data.frame(cust_id = c("111","111","222","222","222","333","333","333","333"),
week = c("w4","w5","w4","w5","w6","w3","w4","w5","w6"),
amount = c(23,34,10,12,35,12,23,15,56))
cust_id week amount
111 w4 23
111 w5 34
222 w4 10
222 w5 12
222 w6 35
333 w3 12
333 w4 23
333 w5 15
333 w6 56
例如 cust_id: 111,缺少 w3、w6 和 w7。我想为 cust_id 111 插入那些缺失的周数和相应的数量 = 0,如下所示。
cust_id week amount
111 w3 0
111 w4 23
111 w5 34
111 w6 0
111 w7 0
任何帮助都会很棒,谢谢!
解决方案
使用tidyr::complete
:
tidyr::complete(df, cust_id, week = paste0('w', 3:7), fill = list(amount = 0))
# cust_id week amount
# <chr> <chr> <dbl>
# 1 111 w3 0
# 2 111 w4 23
# 3 111 w5 34
# 4 111 w6 0
# 5 111 w7 0
# 6 222 w3 0
# 7 222 w4 10
# 8 222 w5 12
# 9 222 w6 35
#10 222 w7 0
#11 333 w3 12
#12 333 w4 23
#13 333 w5 15
#14 333 w6 56
#15 333 w7 0
推荐阅读
- prometheus - 合并来自 2 个 promethues 实例的数据
- xamarin.forms - Xamarin.Forms:如何在包含指示器的扩展器上应用样式
- pascal - 仅将 Ord 限制为字母
- javascript - 从屏幕边框制作滑动动画
- kotlin - 如何使用 1.0E-7(科学记数法转换器)进行转换
- vega-lite - 有没有办法知道 Vega-lite 正在加载?
- sql - Azure Runbook 运行 Sql 查询:目标主体名称不正确。无法生成 SSPI 上下文。”
- r - 从模型中提取基本功能
- google-cloud-platform - 限制主题触发函数的云函数认证
- python - 尝试上传mp4文件时出现Python ftplib UnicodeDecodeError