【问题标题】:Grepl function not working in RGrepl函数在R中不起作用
【发布时间】: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 以忽略大小写差异。

标签: r filter grepl


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回答,下次我一定会尝试提供格式和措辞更好的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 2016-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多