2017-08-29 3 views
-3

Je suis en train de grep pour plusieurs chaînes dans la trame de donnéesfonction Grepl ne fonctionne pas dans 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 

J'AJOUT DE la trame de données pour inclure nouvelle colonne de médias sociaux

data1$socialmedia <- as.numeric(grepl("messenger | facebook | whatsapp " , data1$colname.x)) 

Cependant tout ce que je get est 0 FAUX au lieu de True/1 où Facebook/Whatsapp etc est présent, je ne sais pas pourquoi c'est le cas.

+0

les mots vos données commencent par une lettre majuscule, ulike votre modèle. Peut-être, essayez 'tolower (data1 $ nomcolonne.x)' –

+0

... et vous avez des espaces dans votre modèle - les avez-vous dans vos données? Impossible pour nous de le dire! – Spacedman

+1

Vous avez des espaces entre les mots et les barres verticales, ce qui est le problème le plus probable. (Les espaces sont appariés littéralement). Si vous êtes nouveau dans les expressions régulières, testez vos expressions ici: https://regex101.com/ – Jthorpe

Répondre

1

R est l'espace, majuscule, sensible à l'encodage!

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

si vous expliquez votre idée mieux que je peux fournir une meilleure réponse :)

+0

Merci pour votre réponse, j'essaierai certainement de fournir de meilleures questions formatées et formulées la prochaine fois. –