2010-10-11 99 views
1

这是我第一次尝试在本地MySQL数据库和R之间来回传送数据。也就是说,我在数据库中创建了一个表,并希望向其中插入数据。目前,它是一个空白表(使用MySQL查询浏览器创建)并具有PK集。RODBC插入查询

我正在使用RODBC软件包(RMySQL给了我错误)并且更喜欢坚持使用这个库。

我应该如何将数据框中的数据插入此表中?是否有一个快速的解决方案还是我需要:

  1. 从我的数据帧
  2. 插入创建一个新的临时表中的数据
  3. 删除临时表

设有独立的命令?任何帮助非常感谢!

+0

个人而言,我更喜欢RMySQL包。您提到的错误可能与您的libmySQL.dll版本有关(如果您使用的是Windows,则必须使用5.0版本)。我想对我来说,使用SQL从SQL数据库进行调用感觉更自然。 – 2010-10-12 02:43:02

+0

我也使用RMySQL,并且发现使用本地sql语法很容易使用并发送sql查询,而不是像Dirk给出的例子那样为每种查询类型提供不同的函数和参数。我想知道RODBC优于RMySQL的优点。 – 2010-10-12 15:35:14

回答

4

请参阅help(sqlSave)的包文档;该示例显示

channel <- odbcConnect("test") 
sqlSave(channel, USArrests, rownames = "state", addPK=TRUE) 
sqlFetch(channel, "USArrests", rownames = "state") # get the lot 
foo <- cbind(state=row.names(USArrests), USArrests)[1:3, c(1,3)] 
foo[1,2] <- 222 
sqlUpdate(channel, foo, "USArrests") 
sqlFetch(channel, "USArrests", rownames = "state", max = 5) 
sqlDrop(channel, "USArrests") 
close(channel) 

它希望应该足以让你去。