【发布时间】:2021-06-04 23:02:02
【问题描述】:
我正在使用 R 中的 dplyr 包来“总结”一些输入数据。
第 1 步:计算给定日期 (Date) 的记录数 (N),除了 A 列中的另一个分类值之外,还有某个索引值 (Idx)。 p>
T <- orig_data %>% group_by(A, Date, Idx) %>% summarise(N=n())
第 2 步:创建一个给定日期与给定 Idx 值或更高的计数的累积总和。
T2 <- T %>% mutate(cN=cumsum(N))
但是,表中不存在介于其最大值和最小值之间的某些 Idx 值,例如下面的示例中缺少 idx=10。
A Date Idx N cN
N 2020-10-01 8 18 85
N 2020-10-01 9 6 91
N 2020-10-01 11 1 92
N 2020-10-01 13 10 102
我想为每个缺失的 Idx 值添加一行,例如在缺失的每一天,例如
N 2020-10-01 10 0 91
我尝试使用最简单的填充函数版本进行尝试,但结果没有明显变化(可能是因为 Idx 被解释为列表而不是向量?)
T3 <- T2 %>% fill(cN)
有没有办法轻松添加上面的行,并识别任何其他缺失的行并将它们添加到表中?
【问题讨论】: