2017-04-24 28 views
0

下面是我需要刪除Latin-1編碼字符的輸入字符串,即'\ xf0'。如何刪除或轉換R中的Latin-1編碼字符?

STR < - 「b'RT @galacticemp:跨界水果醬想法XF0 \\ \\ \\ x9f \\ X92 XA1 \\ \\ XF0 \\ x9f \\ X92與xa6 @dstgovza @GlobalDevLab #ibmresearchwits @ WitsUniversity @IBMResearch @USEmbassySA @ \\ \\ XE2 X80 \\ xa6' 」

的iconv(X,在 「latin1」, 「ASCII」,子= 「」)
我嘗試過很多辦法,但未能拆除或改裝。

在這裏,我注意到,如果我有一個反斜槓,代碼工作,但對於雙反斜槓,它會失敗。任何解決方法或正則表達式模式(gsub函數)刪除建議將幫助我很多。謝謝。

回答

1

如果你只是想刪除它們,你可以做到這一點與gsub

gsub("[\x80-\xff]", "", str) 
[1] "b'RT @galacticemp: transboundary water idea jam with @dstgovza @GlobalDevLab #ibmresearchwits @WitsUniversity @IBMResearch @USEmbassySA @'" 

只要是明確的,這是什麼做的是更換任何字符爲空字符串編號128-255。

編輯: 基於來自OP的更新信息,我現在認爲字符串不包含unicode字符,而是用於unicode字符的轉義碼。這些可以用類似的方式刪除,但現在你必須指定一個描述這些轉義碼的模式。

str <- "b'RT @galacticemp: transboundary water idea jam \\xf0\\x9f\\x92\\xa1 \\xf0\\x9f\\x92\\xa6 with @dstgovza @GlobalDevLab #ibmresearchwits @WitsUniversity @IBMResearch @USEmbassySA @\\xe2\\x80\\xa6'" 
gsub("\\\\x[89a-f][0-9a-f]", "", str) 
[1] "b'RT @galacticemp: transboundary water idea jam with @dstgovza @GlobalDevLab #ibmresearchwits @WitsUniversity @IBMResearch @USEmbassySA @'" 
+0

感謝G5W的解決方案。我在複製字符串時犯了一個錯誤。在閱讀.csv文件時,我得到了帶有雙反斜槓的字符串(在問題中編輯了字符串)。但實際上,文件中顯示的是單斜線。你能否幫我替換現在的角色?謝謝。 – Rishi

+0

@Rishi請參閱編輯答案。 – G5W

+0

你先生真棒。謝謝。 – Rishi

相關問題