Mechanical Turk の data.frame の文字列をサニタイズする既存の関数はありますか? ハングアップしている回線の例を次に示します。
x <- "Duke\U3e32393cs B or C, no concomittant malignancy, ulcerative colitis, Crohn\U3e32393cs disease, renal, heart or liver failure"
これらは Unicode 文字だと思いますが、MT ではそれらを処理できません。私は明らかにこれらを非常に簡単に正規表現できますが、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")
通常のテキストは「unknown」をエンコードしており、「latin1」への変換がないため、iconv を使用する単純なソリューションは失敗することに注意してください。以下に、より微妙な解決策を 1 つ試みましたが、あまり満足していません。