2017-08-29 101 views
-3

我试图用grep在数据帧的多个字符串Grepl功能中的R

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)) 

但是,所有我不工作get是0,即FALSE而不是True/1,其中Facebook/WhatsApp等存在,我不知道为什么会出现这种情况。

+0

在您的数据的话开始以大写字母,你的Ulike模式。也许,试试'tolower(data1 $ colname.x)' –

+0

...并且你的模式中有空格 - 你有数据吗?不可能告诉我们! – Spacedman

+1

在单词和竖线之间有空格,这是最可能出现的问题。 (字面意思相符)。如果您对正则表达式不熟悉,请在此处测试您的表达式:https://regex101.com/ – Jthorpe

回答

1

R是空格,大写,编码敏感!

尝试 data1$socialmedia <- as.numeric(grepl("Messenger|Facebook|WhatsApp",data1$colname.x))

如果你解释你的想法更好,我可以提供一个更好的答案:)

+0

谢谢你的回答,下次我一定会尝试并提供更好的格式和措辞问题。 –