R はまったくの初心者なので、明らかな質問はご容赦ください。
Deducer のデータフレームで MySQL テーブル (データベース「test」の「exdata3」) を更新しようとしています。
最初にデータベースを呼び出し、テーブルを deducer で使用し、データフレーム 'data1' に格納されているいくつかのクエリを実行しました。ここで、新しい列を含む「data1」を送信し、MySQL の空でないテーブル exdata3 を更新したいと考えています。
(将来、新しい列/行がないかもしれませんが、既存の列は、MySQL の同じ列と比較して、データフレームで異なる値を持つ可能性があります。私の言いたいことがわかっている場合)
データフレームと MySQL のテーブルの違いは、データフレームに「DiffHighLow」列 (テーブル内の他の 2 つの列から計算された値を含む) が追加されていることです。
RODBC を使用して、64 ビット Windows7 で R と MySQL の間の通信を行っています。
その後のエラーで次のことを試しました。
1. > sqlSave(channel, data1, exdata3, append= TRUE,rownames = "DiffHighLow", colnames = TRUE, verbose = FALSE, safer = TRUE, addPK = FALSE, "integer", fast = TRUE, test = FALSE, nastring =ヌル)
sqlSave のエラー (channel, data1, exdata3, append = TRUE, rownames = "DiffHighLow", : オブジェクト 'exdata3' が見つかりません)
2.> sqlSave(channel, data1, rownames = "DiffHighLow", addPK = TRUE)
sqlSave のエラー (channel、data1、rownames = "DiffHighLow"、addPK = TRUE) : 42S21 1060 [MySQL][ODBC 5.3(w) Driver][mysqld-5.0.41-community-nt]重複する列名 'diffhighlow'
[RODBC] エラー: SQLExecDirect 'CREATE TABLE data1
( DiffHighLow
varchar(255) NOT NULL PRIMARY KEY, exdata3_id
integer, date
double, open
double, high
double, low
double, close
double, shares_
integer, turnover_
double, diffhighlow
double)'を実行できませんでした
3番目。> sqlUpdate(チャンネル、データ1、「exdata3」)
sqlUpdate(channel, data1, "exdata3") のエラー: データ フレームの列の日付は、データベース テーブルにありません。
とりわけ、「DiffHighLow」を除いてデータベーステーブルに既に存在する行名を認識しない理由がわかりません
お知らせ下さい。私はSOでそのような質問をたくさん検索し、すでに投稿されたさまざまなソリューション(私のクエリに最も似ている)を試しましたが、どれも機能していないようです。