У меня есть датафрейм, как показано ниже:
dfm = data.frame (names = c('email', 'Facebook', 'walmart', 'target', 'instagram', 'costco'))
Мне нужно создать новый столбец source
. Когда имена - Facebook, Instagram или электронная почта, источник - СМИ. Когда имена являются costco, walmart или target, источником является магазин.
Я использую case_when
и str_detect
. Мне нужно, чтобы str_detect
не учитывал регистр. Итак, ниже мой код.
dfm %>%
mutate(source = case_when( str_detect(names, fixed('email|facebook|instagram', ignore_case = T))~'media',
str_detect(names, 'walmart|costco|target')~ 'store'))
Я получил:
names source
email NA
Facebook NA
walmart store
target store
instagram NA
costco store
Я не понимаю, почему это не сработало. Кто-нибудь знает почему?
Я попробовал код ниже, он возвращает TRUE
str_detect('Facebook', fixed('facebook', ignore_case = T))