gpt4 book ai didi

r - 使用 dplyr 分组后找到丢失的月份

转载 作者:行者123 更新时间:2023-12-04 12:16:22 25 4
gpt4 key购买 nike

我有一个包含两列的数据框,我将其分组为 dplyr ,一列月份(作为数字,例如 1 到 12),以及几列带有统计数据的列(值不重要)。一个例子:

ID_1   ID_2   month  st1    st2
1 1 1 0.5 0.2
1 1 2 0.7 0.9
1 1 3 1.1 1.7
1 1 4 2.6 0.8
1 1 5 1.8 1.3
1 1 6 2.1 2.2
1 1 7 0.5 0.2
1 1 8 0.7 0.9
1 1 9 1.1 1.7
1 1 10 2.6 0.8
1 1 11 1.8 1.3
1 1 12 2.1 2.2
1 2 1 0.5 0.2
1 2 2 0.7 0.9
1 2 3 1.1 1.7
1 2 4 2.6 0.8
1 2 5 1.8 1.3
1 2 6 2.1 2.2
1 2 7 0.5 0.2
1 2 9 1.1 1.7
1 2 10 2.6 0.8
1 2 11 1.8 1.3
1 2 12 2.1 2.2

对于第二个分组( ID_1 = 1ID_2 = 2 ),数据中缺少一个月( month = 8 )。有没有办法我可以找到这个月并插入一行正确的 ID_1ID_2值,缺失 month值,和 NA其余列的值?我一直在玩这个使用 dplyr功能,似乎无法弄清楚,也许甚至还有一个非 dplyr解决方案也在那里。

PS:如果有帮助, ID_1的每个唯一分组和 ID_2将有不超过 1 个月的失踪。

最佳答案

展开网格以制作所有组组合,然后合并:

# make reference with all needed rows
ref <- data.frame(expand.grid(unique(df1$ID_1),
unique(df1$ID_2),
1:12))
colnames(ref) <- colnames(df1)[1:3]

# them merge with all TRUE
res <- merge(df1, ref, all = TRUE)

# to check output, show only month = 8
res[ res$month == 8, ]
# ID_1 ID_2 month st1 st2
# 8 1 1 8 0.7 0.9
# 20 1 2 8 NA NA

关于r - 使用 dplyr 分组后找到丢失的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39520558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com