2017-10-16 92 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