3
是否有預先存在的功能來清理Mechanical Turk的data.frame字符列?下面是它變得掛了線的一個實例:清理Mechanical Turk的文字?
x <- "Duke\U3e32393cs B or C, no concomittant malignancy, ulcerative colitis, Crohn\U3e32393cs disease, renal, heart or liver failure"
我認爲這些都是Unicode字符,但MT沒有讓我跟他們繼續在那裏。我明顯可以很容易地將這些表達式重新排列,但我使用了一些不錯的方法,希望能有更通用的解決方案來刪除所有非ascii字符。
編輯
我可以刪除編碼如下:
> iconv(x,from="UTF-8",to="latin1",sub=".")
[1] "Duke......s B or C, no concomittant malignancy, ulcerative colitis, Crohn......s disease, renal, heart or liver failure"
但是,這仍然讓我缺乏對使用非UTF8編碼爲任何元素矢量一個更通用的解決方案。
> dput(vec)
c("Colorectal cancer patients Duke\U3e32393cs B or C, no concomittant malignancy, ulcerative colitis, Crohn\U3e32393cs disease, renal, heart or liver failure",
"Patients with Parkinson\U3e32393cs Disease not already on levodopa",
"hi")
注意定期文本編碼「未知」,它沒有轉化爲在「latin1」,使用的iconv那麼簡單的解決方案失敗。我有一個嘗試在下面更細緻的解決方案,但我不是很滿意。
對測試對象提供dput()不是更好嗎?屬性將被附加。 – 2012-07-05 14:07:34
@Dwin這是'dput()'的輸出。我將它複製/粘貼回R來檢查UTF-8編碼是否會被保留。 – 2012-07-05 14:12:21
'iconv(x,「UTF-8」,「ASCII」,「。」)'的哪一部分你想更通用?你的意思是你想要一些能夠檢測當前編碼的東西,以防萬一它是UTF-8或ASCII之外的東西嗎? – 2012-07-05 14:26:02