Хотя этот метод не так удобен, как другие, он довольно гибкий. Я изменил пример данных ops, чтобы показать, как вы можете объединить несколько групп, которые не следуют парадигме свет / темнота.
Edit:
Обновлено сообщение, чтобы ответить на вопрос оп в комментариях.
id = c(1,2,2,3,4,4,4,5,5,5,6,6,6)
subgroup = c("lightred","lightblue","cyan","lightred","water","darkred","lightblue","darkgreen","darkgreen","lightgreen","darkred","darkblue","lightgreen")
data = data.frame(cbind(id,subgroup))
library(dplyr)
data <- data %>%
dplyr::mutate(
colour = dplyr::case_when(
grepl("red" , subgroup, fixed = TRUE) ~ "red",
grepl("(blue)|(cyan)|(water)", subgroup, perl = TRUE) ~ "blue",
grepl("green", subgroup, fixed = TRUE) ~ "green",
TRUE ~ "else"
)
)
data