1

テーブル内の一部のデータをフィルター処理し、結果を含む新しいテーブルを作成する R プログラムがあります。Windows と OSX では、プログラムが実行され、テーブルが適切に作成されます。ただし、Linux (Ubuntu 12.04) サーバーでは、同じ R プログラムがガベージ データを含むテーブルを生成します。

Linux で生成されたガベージ データを適切なデータと比較すると、次のことがわかります。

  • テキスト値が必要な列の一見任意の数値
  • 余分な行

問題はエンコーディングにあると考えていますが、データベースのエンコーディングを変更するためのすべての取り組みは、これまでのところ失敗しています。

この R スクリプトはRMySQL、MySQL データベースに接続し、コンテンツをフィルター処理し、新しいテーブルに書き込みます (dbReadTableおよび dbWriteTableコマンドを使用)。コマンド自体が問題ではないことはわかっています.data.frameをフィルタリングする前後に調べることができます-問題はdbWriteTable.

これらの 2 つのリンクは、私たちの問題の解決策に最も近いようですが、プル リクエストが通過するのを待つ必要があります。

  1. https://github.com/jeffreyhorner/RMySQL/issues/6
  2. https://github.com/gagern/RMySQL/commit/b0fbef105ca61d69992a2ec5a5eafde30530b8d5

また、これらも関連しています。

  1. http://zee.balogh.sk/?p=928
  2. 文字セットと照合とは正確にはどういう意味ですか?
4

1 に答える 1

1

過去の経験から、これは問題ではないと思いdbWriteTableます。エンコーディングの問題でもありません!

おそらく、data.frame を作成するときに発生する可能性がstringsAsFactors = Tあり、それらの数値が因数です。

于 2014-05-10T02:30:07.907 に答える