R:找到缺失的数据并添加零[重复]

这个问题在这里已有答案:

我有以下数据集:

enter image description here

黄色中的行是良好情况的示例,因为对于Vaer = B,Var2 = F且Var2 = G,存在freq值 .

但是,红色的行是坏情况的示例,因为第3行(其中Var2 = F在日期07.02.2018处具有频率值)但是在同一日期我没有Var2 = G的值 .

另一方面,第27行为红色,我在日期04:02:2018具有Var2 = G的频率值,但我在同一天没有Var2 = F的频率值 .

What I need is: 对于所有类型的Var1(A,B,..)和每个Var2(F,G)如果varq存在于Var2 = F但不存在于Var2 = G中,则创建Var2 = G freq = 0在同一天 .

对于Var2 = G,它必须是mabe,其中Var2 = F不存在 .

你能告诉我如何在R中做到这一点吗?

回答(1)

2 years ago

你的解释对我来说有点神秘,但我想你对所有组都有计数,但是你需要将它们用于所有排列,即使没有观察结果(因此填充 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))