r - R 填补缺失的行
问题描述
我有一个类似的问题:Fill in missing rows in R
但是,我需要填补的空白不仅是几个月,而且还缺少一个 ID 之间的几年。这是一个例子:
structure(list(ID = c("A", "A", "A", "A", "A", "B", "B", "B",
"B"), A = c(1L, 1L, 3L, 3L, 3L, 2L, 2L, 2L, 3L), B = c(1L, 2L,
1L, 2L, 3L, 1L, 2L, 3L, 3L), Var1 = 12:4), class = "data.frame", row.names = c(NA,
-9L))
ID A B Var1
1 A 1 1 12
2 A 1 2 11
3 A 3 1 10
4 A 3 2 9
5 A 3 3 8
6 B 2 1 7
7 B 2 2 6
8 B 2 3 5
9 B 3 3 4
这就是我希望它看起来的样子:
ID A B Var1
1 A 1 1 12
2 A 1 2 11
3 A 1 3 0
4 A 2 1 0
5 A 2 2 0
6 A 2 3 0
7 A 3 1 10
8 A 3 2 9
9 A 3 3 8
10 B 2 1 7
11 B 2 2 6
12 B 2 3 5
13 B 3 1 0
14 B 3 2 0
15 B 3 3 4
有人知道如何解决它吗?我已经玩过上面提到的解决方案。
解决方案
您可以使用那里描述的解决方案针对您的问题稍微改变它。
df
full <- with(df, unique(expand.grid(ID = ID, A = A, B = B)))
complete <- merge(df, full, by = c('ID', 'A', 'B'), all.y = TRUE)
complete$Var1[is.na(complete$Var1)] <- 0
推荐阅读
- spring - Grails 4.0.1 - MessageSource 注入和使用方法获取消息给出空指针异常错误
- post - NativeScript-Angular - 将表单数据发布到 Wordpress ContactForm7 API
- dependency-injection - 如何在 Blazor 类中注入服务(AuthenticationStateProvider)
- excel - 将工作表移动到具有给定变量名称和变量工作表计数的工作簿
- r - R:ks.test ECDF 给出不同的结果
- azure-ad-b2c - 在 Azure AD B2C 中使用自定义策略更改用户名
- python - 从图像中删除虚假文本区域
- javascript - 从表中获取特定 ID 客户 react-bootstrap-table2-toolkit
- c# - 在 webapi 发布请求中传递日期时间
- string - 迭代器为文件中的重复行添加一个计数器