2017-10-16 1 views
0

J'ai une trame de données de tweets twitter dans une colonne qui ont différents Unicodes dans le texte. c'est-à-dire pas au début ou à la fin, mais de façon aléatoire tout au long. Je souhaite uniquement supprimer tous les Unicodes de la colonne text et conserver le bloc de données. Par exemple, si une observation est: text text <U+FFH5> text text <U+301F> text Je l'aime revenir: text text text text textSuppression d'unicode <U+????> de toutes les observations dans une colonne

J'ai essayé:

twitter <- str_replace_all(twitter,"<U+[[:alnum:]]>","") 

twitter <- gsub("\\s*<U\\+\\w+>$","",twitter) 

En plus:

twitter$text <- str_replace_all(twitter$text,"<U+[[:alnum:]]>","") 

twitter$text <- gsub("\\s*<U\\+\\w+>$","",twitter$text) 

Ils ne conservent pas la trame de données.

mon cadre de données ressemble actuellement:

id text 
AA Some text<U+FFFD>with some <U+671F> done 
HH <U+3010><U+5B9A><U+671F>good news 
AA Something<U+FFFD><U+FFFD>and so on 
BB Nothing at <U+3011> 
AA more<U+30C8>example 

Ce que je voudrais convertir:

id text 
AA Some text with some done 
HH good news 
AA Something and so on 
BB Nothing at 
AA more example 

Merci d'avance pour toute aide.

+0

S'il vous plaît fournir un [exemple reproductible] (https://stackoverflow.com/questions/5963269/how-to-make-a-great -r-reproductible-exemple). Êtes-vous sûr que la chaîne "" est littéralement dans le texte? Ou utilisez-vous une visionneuse qui échappe au caractère non-ascii pour le rendre imprimable. – MrFlick

+0

Quel client utilisez-vous? C'est presque certainement un caractère Unicode qui n'a pas besoin d'être remplacé. La seule raison pour laquelle vous voyez cela de cette façon est que le client ne peut pas afficher correctement les caractères non ASCII, ou les paramètres spécifient d'afficher la valeur codée au lieu du caractère lui-même. Par exemple, R Studio doit être configuré pour utiliser UTF8 pour lire/écrire * et * afficher –

+1

Un autre avertissement - 'U + FFFD' correspond au caractère de remplacement Unicode. Il apparaît lorsque le code tente de charger du texte stocké dans une page de codes en utilisant un autre code incompatible. Ces données sont * perdues *. D'où vient ce texte? Comment est-il généré, sauvegardé, lu? –

Répondre

0

Peut-être quelque chose comme ça (en partie basé sur Remove all text between two brackets):

twitter ="text <> text <U+FFH5> text text <U+301F> text" 

str_replace_all(twitter,"\\<U[^\\>]*\\>","") # only removes unicode 
+0

J'ai juste essayé d'appliquer ceci à ma trame de données 'twitter 'comme:' twitter <- str_replace_all (twitter, "\\ ] * \\>", "") 'et cela a réduit mon cadre de données en un caractère' Large (2 éléments, 3.5 Mb) ' –

+0

Comme quelqu'un mentionné dans les commentaires, êtes-vous sûr que cette séquence de caractères existe? Que ce n'est pas comment R présente un caractère * Unicode unique> –

+0

Vous ne savez pas comment vous essayez de remplacer les valeurs. Changez-vous 'twitter $ text = str_replace_all (twitter $ text," \\ ] * \\> "," ")' – timfaber