2017-08-29 77 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

謝謝你的回答,下次我一定會嘗試並提供更好的格式和措辭問題。 –