23

データフレームを SQL Server テーブルにアップロードしようとしています。単純な SQL クエリ文字列に分解してみました..

library(RODBC)
con <- odbcDriverConnect("driver=SQL Server; server=database")

df <- data.frame(a=1:10, b=10:1, c=11:20)

values <- paste("(",df$a,",", df$b,",",df$c,")", sep="", collapse=",")

cmd <- paste("insert into MyTable values ", values)

result <- sqlQuery(con, cmd, as.is=TRUE)

..これは機能しているように見えますが、うまくスケーリングしません。もっと簡単な方法はありますか?

4

3 に答える 3

21

[編集]おそらく、貼り付けるnames(df)とスケーリングの問題が解決します。

   values <- paste( " df[  , c(", 
                     paste( names(df),collapse=",") ,
                                   ")] ", collapse="" ) 
      values
      #[1] " df[  , c( a,b,c )] "

あなたはあなたのコードが「機能している」と言います。「アップロード」したいのであれば、sqlQueryではなくsqlSaveを使用することも考えたでしょう。

私はこれがあなたが説明したことをする可能性が高いと推測したでしょう:

 sqlSave(con, df, tablename = "MyTable")
于 2013-01-15T11:20:17.200 に答える