【发布时间】:2021-08-11 22:29:28
【问题描述】:
这里是个新手 - 如果我需要提供更多信息,请告诉我。 我试图围绕这段代码思考很长一段时间,但我从来没有得到想要的结果。我试图根据不同列中的“NA”数量分配组。我创建了一个最小的工作数据集来可视化问题所在 - 并提供了我迄今为止尝试运行的代码。最终我想根据他们是否有 1 个缺失、2 个缺失或 3 个缺失跟进点来创建组。
我的数据集如下所示:
my_data <- data.frame(
Follow_Up1 = c(100, 200, 300, 1, NA, NA, 50, 10, 5, NA),
Follow_Up2 = c(NA, 500 ,400,380,NA, NA, 500, 780,NA,500),
Follow_up3 = c(NA, NA, 1000, 800,NA, 1200, 1100, 1200, 990, NA)
)
follow_Up <- my_data %>%
mutate(Group = case_when(is.na(Follow_Up1) & is.na(Follow_Up2) & is.na(Follow_Up3)~1,
!is.na(Follow_Up1) & is.na(Follow_Up2) & is.na(Follow_Up3)~2,
is.na(Follow_Up1) & !is.na(Follow_Up2) & is.na(Follow_Up3)~3,
!is.na(Follow_Up1) & !is.na(Follow_Up2) & !is.na(Follow_Up3)~4,
!is.na(Follow_Up1) & !is.na(Follow_Up2) & is.na(Follow_Up3)~5,
is.na(Follow_Up1) & is.na(Follow_Up2) & !is.na(Follow_Up3)~6,
!is.na(Follow_Up1) & is.na(Follow_Up2) & !is.na(Follow_Up3)~7
))
Expected Output:
Follow_up1 Follow_up2 Follow_Up3 Group
1 100 <NA> <NA> 2
2 200 500 <NA> 5
3 300 400 1000 4
4 1 380 800 4
5 <NA> <NA> <NA> 1
6 <NA> <NA> 1200 6
7 50 500 1100 4
8 10 78 1200 4
9 5 <NA> 990 7
10 <NA> 500 <NA> 2
如果这不起作用,我也可以根据 NA 的数量而不是订单来分配组 - 如果这更易于编码。虽然我也没有这样做:)
【问题讨论】: