2017-10-16 34 views
0

我在整个文本中有一列中有各种unicodes的twitter推文的数据框。即不在开始或结束时,而是随机地在整个过程中。我只想从text列中删除所有Unicodes并保留数据帧。举例来说,如果一个观察是:text text <U+FFH5> text text <U+301F> text我想它返回:text text text text text从列中的所有观察值中删除unicode <U+????>

我曾尝试:

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

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

除了:

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

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

他们不保留数据帧。

我的数据帧目前的样子:

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 

,我想转换为:

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

预先感谢任何帮助。

+0

请提供[重复的例子(https://stackoverflow.com/questions/5963269/how-to-make-a-great -r重现-例子)。你确定字符串“”是字面上的文字吗?或者,您是否正在使用转义非ASCII字符的查看器进行打印。 – MrFlick

+0

您正在使用哪个客户端?这几乎可以肯定是一个不需要替换的Unicode字符。您以这种方式看到的唯一原因是客户端无法正确显示非ASCII字符,或者设置指定显示编码值而不是字符本身。例如,需要将R Studio配置为使用UTF8进行读取和写入*和* –

+1

另一个警告 - “U + FFFD”对应于Unicode替换字符。它出现在代码尝试加载存储在一个代码页中的文本时使用另一个不兼容的文本。该数据*丢失*。这段文字来自哪里?它是如何生成,保存,读取? –

回答

0

也许是这样的(部分基于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

我只是试图将这个应用于我的数据框'twitter',如下所示:'twitter < - str_replace_all(twitter,“\\ ] * \\>”,“”)'它将我的数据框缩减为一个大字符(2个元素,3.5 Mb)' –

+0

正如有人在评论中提到的那样,你肯定**这个字符序列存在吗?这不是R如何呈现*单个* Unicode字符> –

+0

不知道您如何尝试替换值。你正在更改'twitter $ text = str_replace_all(twitter $ text,“\\ ] * \\>”,“”)' – timfaber