【发布时间】:2023-02-01 21:34:08
【问题描述】:
我有一个数据框,每组的行数不相等,请参见下面示例中的df。我想在所有其他列中添加包含组名和 NA 的行,以便每个组的行数与 df.desired 中的相同。这些行应添加到相应组的最后一行之后。
例子:
df = data.frame(group = c("A","A","A","A","B","B","B","C","C"),
col1 = c(1, 1, 1, 1, 2, 2, 2, 3, 3),
col2 = c(12, 13, 14, 15, 21, 22, 23, 31, 32))
> df
group col1 col2
1 A 1 12
2 A 1 13
3 A 1 14
4 A 1 15
5 B 2 21
6 B 2 22
7 B 2 23
8 C 3 31
9 C 3 32
df.desired = data.frame(group = c("A","A","A","A","B","B","B","B","C","C","C","C"),
col1 = c(1, 1, 1, 1, 2, 2, 2, NA, 3, 3, NA, NA),
col2 = c(12, 13, 14, 15, 21, 22, 23, NA, 31, 32, NA, NA))
> df.desired
group col1 col2
1 A 1 12
2 A 1 13
3 A 1 14
4 A 1 15
5 B 2 21
6 B 2 22
7 B 2 23
8 B NA NA
9 C 3 31
10 C 3 32
11 C NA NA
12 C NA NA
我知道如何使用循环来执行此操作,但这会非常慢,如果可能的话,我更愿意使用dplyr。有人有什么想法吗?
【问题讨论】: