У меня возникают трудности с вставкой фрейма данных в базу данных mySql с использованием RODBC.Ниже код, который я использую:
data <- data.frame(analysedDataID=c(1,2,3), plateWell=c("a","b","c"), screenPlateOrder=c(1,2,3), wellData=c("A","B","C"))
con <- odbcConnect(DSN, uid="user_id", pwd="some_password")
query <- sqlSave(con, data, tablename = 'wellAnalysedDataTable', rownames=FALSE, append=TRUE)
Когда я пытаюсь выполнить это, я получаю следующее сообщение об ошибке:
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
Вот конкретная таблица, которую я пытаюсь выполнитьвставьте данные в:
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| analysedDataID | int(10) | YES | | NULL | |
| plateWell | varchar(10) | YES | | NULL | |
| screenPlateOrder | int(10) | YES | | NULL | |
| wellData | varchar(30) | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
Я просто очень запутался в этом моменте, поскольку я перечитывал документацию снова и снова, но просто не могу заставить это работать.Любая помощь будет принята с благодарностью!
Ура!
Спасибо!Я добавил изменения, которые вы предложили, и, похоже, проблема больше не возникает.Однако я продолжаю получать следующее сообщение об ошибке:
'index column(s) analysedDataID plateWell screenPlateOrder wellData not in data frame'
Оператор, который я выполняю, который генерирует это:
sqlUpdate(con, data, tablename="wellAnalysedDataTable", index=c("analysedDataID", "plateWell", "screenPlateOrder", "wellData"))
Это не имеет никакого смысла для меня как столбцыуже находятся во фрейме данных с такими же именами.