#r #if-statement #switch-statement #conditional-statements
#r #if-statement #switch-statement #условные операторы
Вопрос:
Например
df$Col2 <- sapply(df$Col1, switch,
"001"= "Gold",
"005" = "Silver",
"007" = "Platinum",
""= "OTHER)
До «007» это работает, но когда я добавляю последнюю пустую строку в условие, я получаю сообщение об ошибке:
Error: attempt to use zero-length variable name
Есть ли способ заставить его прочитать пустую ячейку и на основе этого присвоить ей условное значение, которое я прошу об этом?
Ответ №1:
Мы можем использовать case_when
library(dplyr)
df %>%
mutate(Col2 = case_when(Col1 == '001' ~ 'Gold',
Col1 == '005' ~ "Silver",
Col1 == '007' ~ 'Platinum',
TRUE ~ "OTHER"))
С switch
помощью, мы можем иметь default
опцию в качестве последней записи
df$Col2 <- sapply(df$Col1, switch,
"001"= "Gold",
"005" = "Silver",
"007" = "Platinum", "OTHER")
Ответ №2:
Я понял, что удаления «»= было достаточно, чтобы заставить его делать то, что я хотел.
df$Col2 <- sapply(df$Col1, switch,
"001"= "Gold",
"005" = "Silver",
"007" = "Platinum",
"OTHER")