【发布时间】:2020-04-12 05:40:15
【问题描述】:
我有一个如下的数据框:
dfm = data.frame (names = c('email', 'Facebook', 'walmart', 'target', 'instagram', 'costco'))
我需要创建一个新列source。当名称是 facebook、instagram 或电子邮件时,来源是媒体。当名称为 costco、walmart 或 target 时,来源为 store。
我使用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))
【问题讨论】: