Это может быть достигнуто вложенными условными выражениями с ifelse()
в базе или if_else()
, case_when()
в dplyr .
# data
df <- structure(list(Term = c(12L, 24L, 17L, 9L, 36L), DayLate = c(0L,
24L, 30L, 15L, 21L)), class = "data.frame", row.names = c(NA, -5L))
(1) базовый путь
within(df,
NEW_STATUS <- ifelse(Term <= 12,
ifelse(DayLate <= 14, "NORM", "SPECIAL"),
ifelse(DayLate <= 29, "NORM", "SPECIAL"))
)
(2) dplyr
df %>% mutate(
NEW_STATUS = case_when(
Term <= 12 ~ if_else(DayLate <= 14, "NORM", "SPECIAL"),
TRUE ~ ifelse(DayLate <= 29, "NORM", "SPECIAL")
)
)
Выход
# Term DayLate NEW_STATUS
# 1 12 0 NORM
# 2 24 24 NORM
# 3 17 30 SPECIAL
# 4 9 15 SPECIAL
# 5 36 21 NORM