按组添加行以按组获得相同数量的观察值
adding rows by group to get same number of observations by group
我有一个看似非常简单的问题,但我无法成功地将解决方案应用到与我的情况相似的解决方案中,包括这个问题:
我有一些数据如下所示:
# A tibble: 265 x 4
anon_ID assistance_date Benefit_1 nth_assistance_interaction
<int> <chr> <chr> <dbl>
1 8 2020-04-10 Medical 5
2 8 2020-04-13 Medical 10
3 8 2020-04-15 Medical 15
4 8 2020-04-21 Medical 20
5 11 2020-06-17 Housing 5
6 11 2020-06-25 Financial 10
7 11 2021-01-27 Financial 15
8 26 2020-05-18 Legal 5
9 26 2021-06-01 Food 10
10 26 2021-08-02 Utilities 15
# ... with 255 more rows
我想修改它,使每个 anon_ID
有四个观察值,每个值对应 nth_assistance_interaction
的每个唯一值。当这些变量的实际值不存在时,assistance_date
和 Benefit_1
的值应为 NA
。
例如,对于 anon_ID
= 11
,当 nth_assistance_interaction
= 20
.
时,这两个变量将具有 NA
值
# A tibble: 265 x 4
anon_ID assistance_date Benefit_1 nth_assistance_interaction
<int> <chr> <chr> <dbl>
1 8 2020-04-10 Medical 5
2 8 2020-04-13 Medical 10
3 8 2020-04-15 Medical 15
4 8 2020-04-21 Medical 20
5 11 2020-06-17 Housing 5
6 11 2020-06-25 Financial 10
7 11 2021-01-27 Financial 15
8 11 NA NA 20
9 26 2020-05-18 Legal 5
10 26 2021-06-01 Food 10
11 26 2021-08-02 Utilities 15
# ... with 255 more rows
这只是我正在努力完成的一个例子。也可能是 anon_ID
= 27
对 nth_assistance_interaction
只有一个观察值,因此我需要为它们添加三行。
我该如何着手实现这一目标?提前致谢。
我们可以按'anon_ID'分组,用complete
展开数据
library(dplyr)
library(tidyr)
df1 %>
group_by(anon_ID) %>%
complete(nth_assistance_interaction = c(5, 10, 15, 20)) %>%
ungroup
我有一个看似非常简单的问题,但我无法成功地将解决方案应用到与我的情况相似的解决方案中,包括这个问题:
我有一些数据如下所示:
# A tibble: 265 x 4
anon_ID assistance_date Benefit_1 nth_assistance_interaction
<int> <chr> <chr> <dbl>
1 8 2020-04-10 Medical 5
2 8 2020-04-13 Medical 10
3 8 2020-04-15 Medical 15
4 8 2020-04-21 Medical 20
5 11 2020-06-17 Housing 5
6 11 2020-06-25 Financial 10
7 11 2021-01-27 Financial 15
8 26 2020-05-18 Legal 5
9 26 2021-06-01 Food 10
10 26 2021-08-02 Utilities 15
# ... with 255 more rows
我想修改它,使每个 anon_ID
有四个观察值,每个值对应 nth_assistance_interaction
的每个唯一值。当这些变量的实际值不存在时,assistance_date
和 Benefit_1
的值应为 NA
。
例如,对于 anon_ID
= 11
,当 nth_assistance_interaction
= 20
.
NA
值
# A tibble: 265 x 4
anon_ID assistance_date Benefit_1 nth_assistance_interaction
<int> <chr> <chr> <dbl>
1 8 2020-04-10 Medical 5
2 8 2020-04-13 Medical 10
3 8 2020-04-15 Medical 15
4 8 2020-04-21 Medical 20
5 11 2020-06-17 Housing 5
6 11 2020-06-25 Financial 10
7 11 2021-01-27 Financial 15
8 11 NA NA 20
9 26 2020-05-18 Legal 5
10 26 2021-06-01 Food 10
11 26 2021-08-02 Utilities 15
# ... with 255 more rows
这只是我正在努力完成的一个例子。也可能是 anon_ID
= 27
对 nth_assistance_interaction
只有一个观察值,因此我需要为它们添加三行。
我该如何着手实现这一目标?提前致谢。
我们可以按'anon_ID'分组,用complete
展开数据
library(dplyr)
library(tidyr)
df1 %>
group_by(anon_ID) %>%
complete(nth_assistance_interaction = c(5, 10, 15, 20)) %>%
ungroup