2012-06-08 38 views
6

Rで慣習的な中国語の文字を含むUTF-8エンコードされた.csvファイルを開こうとしています。何らかの理由により、Rは時には漢字文字。例えばUTF-8でエンコードされた中国語の文字を表示するR

data <-read.csv("mydata.csv", encoding="UTF-8") 

data[,1] 

が実際に中国語の文字が表示されます。一方、

data <-read.csv("mydata.csv", encoding="UTF-8") 

data 

は、Unicode文字を生成します。

これを行列にすると漢字も表示されますが、データ(コマンドView(データ)または修正(データ))を見ようとすると、再びUnicodeになります。

Macを使用している人(私はPC、Windows 7を使用している人)からアドバイスを求められましたが、その中には漢字がある人もいました。私は代わりに元のデータをテーブルとして保存し、この方法でRに読み込もうとしました。同じ結果です。私はRStudio、Revolution R、およびRGuiでスクリプトを実行しようとしました。私はロケールを(例えば中国語に)調整しようとしましたが、Rはそれを変更させませんでした。そうしないと、結果はユニコード文字の代わりに不器用でした。

私の現在のロケールである:

"LC_COLLATE = French_Switzerland.1252; LC_CTYPE = French_Switzerland.1252; LC_MONETARY = French_Switzerland.1252; LC_NUMERIC = C; LC_TIME = French_Switzerland.1252"

Rに一貫して漢字を表示させる助けがあれば、大変感謝しています。

+0

フム(UTF-8がすべての問題の解決策ではない、あなたのシステムのデフォルトのエンコード最初のを知っているする必要が)、これはバグのように見えます。興味のある人は、このコードで簡単に再現できます: 'x = c( '中華民族'); x; data.frame(x)'。Rエディタにそのコードを貼り付けたり、コンソールに貼り付けるだけでは機能しません。 – nograpes

+0

私の答えを見てくださいhttp://stackoverflow.com/questions/22876746/how-to-read-data-in-utf-8-format-in-r – Sathish

答えて

2

基本的なタイプのシステム変換の誤解が増えました(characterタイプとタイプタイプ)を作成します。data.frame

中国語の文字はで始まり、中国語の文字はcharacterになりますので、印刷することで期待通りに見えるはずです。

@nograpes:同様にx=c('中華民族');x; y <- data.frame(x, stringsAsFactors=FALSE)とすべてがOKである必要があります。

+1

実際には、それは私のために動作しません。そのコードを実行してから 'print(y)'を実行してみてください。私は[これについての質問]を作った(http://stackoverflow.com/questions/17715956/why-do-some-unicode-characters-display-in-matrices-but-not-data-frames-in-r)問題に直接対処する – nograpes

+0

興味深いことに、それは今私のために働く(私はその間に別のコンピュータに切り替えた。これは違いをもたらすかもしれないし、そうでないかもしれない)。ありがとう! – user1445297

1

私の場合、私の場合、utf-8エンコーディングは動作しません。しかし、Gb *エンコーディングはうまくいきます。しかしutf8はubuntuで動いています。最初に、あなたのOSでデフォルトのエンコーディングを調べる必要があります。それをそのままエンコードします。 Excelはetf8として保存してもそれをutf8として正しくエンコードすることはできません。

(1)ダウンロード 'open sheet'。

(2)正しく開きます。 プレビューウィンドウに表示されている中国語の文字が表示されるまで、エンコード方法をスクロールできます。

(3)utf-8として保存します(utf-8が必要な場合)。

関連する問題