2013-02-27 7 views
0

J'ai un vecteur de chaînes de caractères que j'essaie de traiter, mais je ne peux pas me débarrasser de certains caractères étranges.R se débarrasser du caractère guillemet simple

Quand je lis le fichier csv je la ligne suivante:

train <- read.csv(file="files/file1.csv", header = T, encoding = "UTF-8") 

J'ai utilisé cette ligne pour essayer de se débarrasser de la ponctuation:

train$var1 <- gsub("[[:punct:]]", " ", train$var1) 

Cependant sur l'inspection après l'exécution, je Je vois encore des citations simples bizarres, ... et des points noirs comme un personnage dissimulant un mot de passe. Voici le dput:

dput(unique(unlist(var1List))[c(30242:30246, 30561, 30484)]) 
c("opportunity…", "about…", "expected…", "reward…", "us…", "‘as", 
"<U+25CF>") 

Des suggestions pour se débarrasser de ces caractères?

+0

Que diriez-vous de supprimer tout sauf une «liste blanche» des caractères autorisés? Pouvez-vous définir une telle liste blanche? –

+0

Comment ferais-je cela? – screechOwl

+1

qui coche dans 'as 'est un accent plutôt qu'une citation. Vous avez également le caractère ellipses plutôt que trois périodes. 'gsub ('[^ A-z0-9]', '', x)' ne conservera que des lettres et des chiffres, mais vous perdrez la représentation unicode dans la dernière chaîne. – Justin

Répondre

5

Vous pouvez supprimer tout sauf un jeu de caractères juridiques:

train$var1 <- gsub("[^\\w\\s]", " ", train$var1, perl = TRUE) 

changerait tous les caractères qui n'est pas un alphanumérique ou un caractère d'espacement dans un espace, par exemple.

+0

Je ne pense pas que ce soit une R regex valide. '\ w' est un non reconnu. (même avec grep = T) – agstudy

+1

Modifié pour fonctionner avec la syntaxe regex spécifique de R. – joran

+0

@joran: Merci, je n'arrête pas d'oublier les doubles barres obliques inverses - mais est-ce que 'perl = TRUE' est vraiment nécessaire? –

Questions connexes