【发布时间】:2020-10-07 20:33:36
【问题描述】:
基于下面定义的手臂,我在dplyr::mutate 函数下编写了这些语句来定义事件。我想知道您是否可以帮助我编写一个可以减少代码行的函数,因为有些代码是重复的?谢谢
Arm- 1 (September 1, 2017- August 31, 2018)
arm_1_event_1 <- c(as.Date("2017-09-01"), as.Date("2017-11-30"))
arm_1_event_2 <- c(as.Date("2017-12-01"), as.Date("2018-02-28"))
arm_1_event_3 <- c(as.Date("2018-03-01"), as.Date("2018-05-31"))
arm_1_event_4 <- c(as.Date("2018-06-01"), as.Date("2018-08-31"))
Arm- 2 (September 1, 2018- August 31, 2019)
arm_2_event_1 <- c(as.Date("2018-09-01"), as.Date("2018-11-30"))
arm_2_event_2 <- c(as.Date("2018-12-01"), as.Date("2019-02-28"))
arm_2_event_3 <- c(as.Date("2019-03-01"), as.Date("2019-05-31"))
arm_2_event_4 <- c(as.Date("2019-06-01"), as.Date("2019-08-31"))
Arm- 3 (September 1, 2019- August 31, 2020)
arm_3_event_1 <- c(as.Date("2019-09-01"), as.Date("2019-11-30"))
arm_3_event_2 <- c(as.Date("2019-12-01"), as.Date("2020-02-29"))
arm_3_event_3 <- c(as.Date("2020-03-01"), as.Date("2020-05-31"))
arm_3_event_4 <- c(as.Date("2020-06-01"), as.Date("2020-08-31"))
dplyr::mutate(
arms_and_events = NA_character_,
arms_and_events = dplyr::case_when(
((date_application_received >= arm_1_event_1[1] &
date_application_received <= arm_1_event_1[2]) ~ "arm_1_event_1"),
((date_application_received >= arm_1_event_2[1] &
date_application_received <= arm_1_event_2[2]) ~ "arm_1_event_2"),
((date_application_received >= arm_1_event_3[1] &
date_application_received <= arm_1_event_3[2]) ~ "arm_1_event_3"),
((date_application_received >= arm_1_event_4[1] &
date_application_received <= arm_1_event_4[2]) ~ "arm_1_event_4"),
((date_application_received >= arm_2_event_1[1] &
date_application_received <= arm_2_event_1[2]) ~ "arm_2_event_1"),
((date_application_received >= arm_2_event_2[1] &
date_application_received <= arm_2_event_2[2]) ~ "arm_2_event_2"),
((date_application_received >= arm_2_event_3[1] &
date_application_received <= arm_2_event_3[2]) ~ "arm_2_event_3"),
((date_application_received >= arm_2_event_4[1]
& date_application_received <= arm_2_event_4[2]) ~ "arm_2_event_4"),
((date_application_received >= arm_3_event_1[1] &
date_application_received <= arm_3_event_1[2]) ~ "arm_3_event_1"),
((date_application_received >= arm_3_event_2[1] &
date_application_received <= arm_3_event_2[2]) ~ "arm_3_event_2"),
((date_application_received >= arm_3_event_3[1] &
date_application_received <= arm_3_event_3[2]) ~ "arm_3_event_3"),
((date_application_received >= arm_3_event_4[1] &
date_application_received <= arm_3_event_4[2]) ~ "arm_3_event_4"),
((date_voucher_issued >= arm_1_event_1[1] &
date_voucher_issued <= arm_1_event_1[2]) ~ "arm_1_event_1"),
((date_voucher_issued >= arm_1_event_2[1] &
date_voucher_issued <= arm_1_event_2[2]) ~ "arm_1_event_2"),
((date_voucher_issued >= arm_1_event_3[1] &
date_voucher_issued <= arm_1_event_3[2]) ~ "arm_1_event_3"),
((date_voucher_issued >= arm_1_event_4[1] &
date_voucher_issued <= arm_1_event_4[2]) ~ "arm_1_event_4"),
((date_voucher_issued >= arm_2_event_1[1] &
date_voucher_issued <= arm_2_event_1[2]) ~ "arm_2_event_1"),
((date_voucher_issued >= arm_2_event_2[1] &
date_voucher_issued <= arm_2_event_2[2]) ~ "arm_2_event_2"),
((date_voucher_issued >= arm_2_event_3[1] &
date_voucher_issued <= arm_2_event_3[2]) ~ "arm_2_event_3"),
((date_voucher_issued >= arm_2_event_4[1] &
date_voucher_issued <= arm_2_event_4[2]) ~ "arm_2_event_4"),
((date_voucher_issued >= arm_3_event_1[1] &
date_voucher_issued <= arm_3_event_1[2]) ~ "arm_3_event_1"),
((date_voucher_issued >= arm_3_event_2[1] &
date_voucher_issued <= arm_3_event_2[2]) ~ "arm_3_event_2"),
((date_voucher_issued >= arm_3_event_3[1] &
date_voucher_issued <= arm_3_event_3[2]) ~ "arm_3_event_3"),
((date_voucher_issued >= arm_3_event_4[1] &
date_voucher_issued <= arm_3_event_4[2]) ~ "arm_3_event_4")
)
【问题讨论】: