!データを区間分けする cut()を使う方法もあるが、dplyr::case_when()も便利。 test = tibble::tribble( ~tokuten, NA, 15, 50, 45, 76, 90) test %>% mutate( hantei = case_when( is.na(tokuten) ~ NA_character_, 40 < tokuten ~ "不合格", 41 <= tokuten & tokuten <= 70 ~ "補欠合格", 71 <= tokuten ~ "合格" ) )