2010-04-08 52 views
3

我有一个关于使用sqlSave的问题。 R如何将数据框中的RODBC数据映射到数据库表列?RODBC sqlSave()和映射列名

如果我有一个X和Y列和一个X和Y列的数据框的表,RODBC把X分成X和Y分成Y(我通过跟踪和错误发现)。但是,我可以明确告诉R如何将data.frame列映射到数据库表列,例如将A放在X中,将B放在Y中。

我对R比较陌生,认为RODBC手册有点神秘。我也不能在互联网上找到一个例子。

回答

2

我现在做这种方式(也许这也是你的意思):

colnames(dat) <- c("A", "B") 
sqlSave(channel, dat, tablename = "tblTest", rownames=FALSE, append=TRUE) 

它适用于我。谢谢你的帮助。

+0

在保存对象之前改变了对象,而在完成工作的同时,它不是你要求的。 – 2010-04-08 15:44:17

+0

当然,但改变的对象只是暂时的,所以它没有问题 – waanders 2010-04-08 18:52:52

1

当你开始探索R时,你应该找到很好的R手册,它的帮助设施也非常好。

如果你开始

help(sqlSave) 

你会看到colNames说法。提供一个载体c("A", "B")会把你的第一个data.frame列到表列A等

+0

“你的帮助设施”是什么意思?我使用http://cran.r-project.org/web/packages/RODBC/RODBC.pdf。但该文档将“colnames”参数说成“逻辑:将列名称保存为第一行表格?”,而不是作为向量填充列.NAMES – waanders 2010-04-08 15:01:48

+2

在R/ – 2010-04-08 15:43:20

+1

中键入'help(help)'仍然是“colnames”参数是合理的 – waanders 2010-04-08 18:49:40

1

我在使用sqlSave与IBM DB2数据库时遇到了大量问题。我试图通过使用sqlQuery来避免它,而不是使用正确的格式创建表,然后使用sqlSaveappend=T将我的R表强制到数据库表中。这解决了很多问题,如日期格式和浮点数(而不是双精度数)。