我有以下数据集:
黄色的行是良好情况的一个例子,因为对于Vaer = B,Var2 = F和Var2 = G都存在freq值。
但是,红色的行是坏情况的示例,因为第3行(其中Var2 = F在日期07.02.2018处具有频率值但是在同一日期我没有Var2 = G的值。
另一方面,第27行为红色,我在04:02:2018时有Var2 = G的频率值,但我在同一天没有Var2 = F的频率值。
我需要的是: 对于所有类型的Var1(A,B,..)和每个Var2(F,G)如果varq存在于Var2 = F但不存在于Var2 = G中,则创建Var2 = G freq = 0在同一天。< / p>
对于Var2 = G,同样必须是mabe,其中Var2 = F不存在。
你能否告诉我如何在R中做到这一点?
答案 0 :(得分:0)
你的解释对我来说有点神秘,但我猜你对所有群体都有统计意义,但是你需要将它们用于所有排列,即使没有观察结果(因此将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))