【发布时间】:2017-08-29 16:27:13
【问题描述】:
我正在尝试 grep 数据框中的多个字符串
head(data1)
colname.x
Facebook
POF Free Dating App
WhatsApp Messenger
WhatsApp Messenger
Facebook
Facebook
Facebook
Facebook
WhatsApp Messenger
POF Free Dating App
Facebook
Facebook
WhatsApp Messenger
Facebook
Messenger
Facebook
Facebook
Dropbox
WhatsApp Messenger
Facebook
Dropbox
WhatsApp Messenger
WhatsApp Messenger
Facebook
我正在附加数据框以包含新的社交媒体列
data1$socialmedia <- as.numeric(grepl("messenger | facebook | whatsapp " , data1$colname.x ))
但是我得到的只是 0,即 FALSE,而不是存在 Facebook/Whatsapp 等的 True/1,我不确定为什么会这样。
【问题讨论】:
-
数据中的单词以大写字母开头,与您的模式不同。也许,试试
tolower(data1$colname.x) -
...您的模式中有空格 - 您的数据中有空格吗?我们不可能说出来!
-
单词和竖线之间有空格,这是最有可能出现的问题。 (空格按字面意思匹配)。如果您不熟悉正则表达式,请在此处测试您的表达式:regex101.com
-
您可能希望将
ignore.case=TRUE添加到您的grepl以忽略大小写差异。