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