将R的数据帧装入Mysql表

时间:2014-05-30 16:28:36

标签: mysql r

我有几百个csv,我想用R脚本插入MySql数据库。

   library(RMySQL)
   library(caroline)
   ...
   ...
   con <- dbConnect(MySQL(), user="root", password="mypass",  dbname="Data", host="localhost")
   fields <- dbListFields(con, db.table.name) 
   dbWriteTable2(con,db.table.name,data,row.names=FALSE,fill.null=TRUE)
   dbDisconnect(con)
   ...
   ...

R回答我:

  Error in mysqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not run statement: Unknown column 'id' in 'field list')

但是在我的数据框和mysql表中的任何一个表中都没有id字段。 那么R试图告诉我什么? Here这是我的数据库架构。 这里是str()我的数据

  

STR(数据)

  'data.frame': 306 obs. of  22 variables:
  $ Division : chr  "B1" "B1" "B1" "B1" ...
  $ Eventdate: Date, format: "2000-08-12" "2000-08-12" "2000-08-12" "2000-08-12" ...
  $ HomeTeam : chr  "Beveren" "Mechelen" "Louvieroise" "Mouscron" ...
  $ AwayTeam : chr  "Charleroi" "Genk" "Lokeren" "Germinal" ...
  $ FTHG     : int  1 0 0 3 2 1 6 3 0 2 ...
  $ FTAG     : int  2 0 0 0 1 3 2 4 0 1 ...
  $ FTR      : chr  "A" "D" "D" "H" ...
  $ HTHG     : int  1 0 0 1 1 0 3 1 0 1 ...
  $ HTAG     : int  1 0 0 0 0 1 0 2 0 0 ...
  $ HTR      : chr  "D" "D" "D" "H" ...
  $ GBH      : num  2.2 2 2.3 1.9 1.41 2.7 1.8 2.6 4 1.5 ...
  $ GBD      : num  3.5 3.6 3.3 3.3 4.1 3.3 3.4 3.2 3 3.5 ...
  $ GBA      : num  2.5 2.65 2.45 3.5 4.7 2.1 3.5 2.2 1.75 5.1 ...
  $ IWH      : num  2 2.1 2.35 1.8 1.75 2.3 1.6 2.6 3.8 1.4 ...
  $ IWD      : num  3 3 3 3 3.1 3 3.2 3 3.2 3.6 ...
  $ IWA      : num  2.9 2.8 2.35 3.5 3.6 2.4 4.2 2.2 1.65 5.5 ...
  $ SBH      : num  2.05 2.3 2.45 1.85 1.6 2.6 1.6 2.75 4.1 1.53 ...
  $ SBD      : num  3.4 3.4 3.4 3.4 3.5 3.2 3.5 3.25 3.45 3.5 ...
  $ SBA      : num  2.95 2.55 2.4 3.5 4.5 2.3 4.5 2.2 1.7 5 ...
  $ WHH      : num  2 2.4 2.4 -1 1.61 2.4 1.61 2.6 3.8 1.5 ...
  $ WHD      : num  3.4 3.3 3.3 -1 3.6 3.3 3.75 3.3 3.5 3.6 ...
  $ WHA      : num  2.9 2.4 2.4 -1 4.2 2.4 4 2.25 1.7 5.2 ...

1 个答案:

答案 0 :(得分:0)

根据对caroline包的一些测试,dbWriteTable2仅对具有id列的表有用。来自?dbWriteTable2:它返回If successful, the ids of the newly added database records (invisible)。如果表没有要返回的id列,dbWriteTable2似乎失败。