2015-12-17 1 views
-2

Comment supprimer les guillemets de la chaîne suivante dans R? Je lis les données manuellement et je ne peux pas supprimer les citations et les contre-obliques.Supprimer la barre oblique inverse et les citations dans R

+0

Que voulez-vous dire « Je lis les données manuellement »? Il serait préférable de régler le problème au moment de l'importation plutôt que plus tard. – MrFlick

Répondre

6

Vous n'avez pas besoin d'échapper à quoi que ce soit si vous ne ne pas utiliser une regex:

gsub('\"', "", test, fixed = TRUE) 
#[1] "LAST4" 
0

Essayez:

gsub("\\\"","",test) 
#[1] "LAST4" 

AMENDER:

solution de @Roland améliore la lisibilité et la performance:

require(rbenchmark) 
test = "\"LAST4\"" 

a <- function() gsub("\\\"","",test) 
b <- function() gsub('\"', "", test, fixed = TRUE) 

benchmark(a(), b(), replications=10^7) 
# test replications elapsed relative user.self sys.self user.child sys.child 
#1 a()  10000000 87.216 1.801 87.914  0   0   0 
#2 b()  10000000 48.430 1.000 46.989  0   0   0 
+1

Essayez réellement l'évaluation de la fonction: 'benchmark (a(), b(), les réplications = 10^5)' – Roland

+1

Oh, en effet, comment suis-je stupide ... Merci @ Roland! Je vais modifier mon édition. – Vongo

0

La solution dans: "R - gsub remplaçant les backslashes" a fonctionné pour moi.

Exemple:

library(stringr) 
df$variable <- str_replace(df$variable,"\\\\\\\","") 

df$variable before: "xyz\" 
df$variable after:"xyz"