2010-04-08 58 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表強制到數據庫表中。這解決了很多問題,如日期格式和浮點數(而不是雙精度數)。