Я пытаюсь создать новую переменную на основе условной оценки ряда других переменных. Я использую некоторые вложенные операторы "if_else", но только часть условного оператора оценивается так, как я хочу.
Вот данные для некоторых примеров данных:
structure(list(`Cultivation` = c("No", "No", "Yes",
"Yes", "No", "Yes", "No", "No", "No", "No", "Yes", "Yes"),
`Processing` = c("No",
"No", "Yes", "Yes", "No", "No", "No", "No", "No", "No", "No",
"Yes"), `Federal Sales` = c("No", "No", "Yes", "Yes", "Yes",
"Yes", "No", "No", "No", "No", "Yes", "Yes"), `Cultivation
Type` = c(NA,
NA, "Standard", "Standard", NA, "Micro", NA, NA, NA, NA, "Nursery",
"Standard"), `Processing Type` = c(NA, NA, "Standard",
"Standard", NA, NA, NA, NA, NA, NA, NA, "Standard"), `Type` = c(NA,
NA, "Standard", "Standard", NA, "Micro", NA, NA, NA, NA, NA,
"Standard")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-12L))
Здесьэто код, который я использую:
DF.2 <- DF.1 %>%
dplyr::mutate("Type" = if_else(str_detect(tolower(`Cultivation Type`),
"micro") |
str_detect(tolower(`Processing Type`), "micro"), "Micro",
if_else(str_detect(tolower(`Cultivation Type`), "standard") |
str_detect(tolower(`Processing Type`), "standard"), "Standard",
if_else(str_detect(tolower(`Cultivation Type`), "nursery"),
"Nursery","Other"))))
Первые два условия выполняются, и я получаю переменную типа "стандартный" или "микро", но "питомник" и "другие" не оцениваюти я получаю "NA".