r - R:查找丢失的数据并将其添加为零
问题描述
我有以下一组数据:
黄色的行是一个很好的例子,因为对于 Vaer=B,Var2=F 和 Var2=G 都存在一个频率值。
但是,红色行是不良情况的示例,因为 Var2=F 的第 13 行在 2018 年 2 月 7 日具有频率值,但我在同一日期没有 Var2=G 的值。
另一方面,红色的第 27 行,我在日期 04:02:2018 有 Var2=G 的频率值,但在同一日期我没有 Var2=F 的频率值。
我需要的是: 对于所有类型的 Var1 (A, B, ..) 和对于每个 Var2 (F, G) 如果 freq 存在于 Var2=F 但不存在于 Var2=G 中,则为 Var2=G freq=0 创建同一日期。
对于不存在 Var2=F 的 Var2=G 也必须如此。
你能给我一些想法如何在 R 中做到这一点吗?
解决方案
你的解释对我来说有点神秘,但我想你对所有组都有计数,但你也需要对所有排列都有它们,即使没有观察到(因此freq
用 0 填充)。您可以使用tidyr::complete
:
df <- data.frame(Var1 = c("A", "A", "B", "B", "B"),
Var2 = c("F", "G", "F", "G", "F"),
freq = c(2L, 3L, 1L, 5L, 3L),
date = as.Date(c("2018-04-27", "2018-04-28", "2018-04-27", "2018-04-28", "2018-04-29")))
tidyr::complete(data = df, Var1, Var2, date, fill = list(freq = 0L))
推荐阅读
- sql - Postgres 函数返回太多列
- reactjs - React JS 中的列表渲染
- mysql - 是否可以确定哪个键触发“重复键”错误?
- android - Firestore:通过逻辑 OR 在嵌套地图/数组中的多个字段上搜索/过滤功能
- python - Python:解决这个凌乱的 if else 结构更好
- python-3.x - 通过表单提交数据但未存储在数据库中
- java - @PathVariable、@RequestParam 和 @RequestBody 之间的区别
- python - TensorFlow 通用句子编码器 (lite) 崩溃
- r - 如何在 getSymbols 中返回从星期一开始的每周数据
- c# - 如何在 Unity 中修复“错误 CS1061:‘GoogleMobileAdsSettings’不包含‘IsAdMobEnabled’的定义”