R 中的 sqlSave 有问题吗?

Issues with sqlSave in R?

我已经通读了之前 questions/answers 关于这个问题的内容,但是 none 似乎回答了我的问题。我的最终目标是从 R 获取数据到 SQL table.

在尝试这样做时,我首先在 Microsoft SQL Server 2012 中创建了 table [PL_DEV].[PL_A].[X],其中包含以下列:ST VARCHAR(10)YEAR VARCHAR(10) , Intercept FLOAT, Y FLOAT, Z FLOAT, U FLOAT。已将主键添加到 STYEAR 列。

从那里,我建立了一个 RODBC 连接,我称之为 conn

设置之后,我创建了一个名为 df 的数据框,第一行数据如下所示:

 ST    YEAR      INTERCEPT   Y           Z          U
"01"   "2009"   -50012.37    0.6341358   16569.52   61.42544

设置后,我尝试将此数据框 (df) 中的数据插入到我创建的 SQL table ([PL_DEV].[PL_A].[X]) 中。我试图用以下语句来做到这一点:

sqlSave(conn, dat = df, tablename = "[PL_DEV].[PL_A].[X]", append = TRUE, rownames = FALSE)

我设置 append = TRUE 这样它就不会创建 table 而是插入数据并且还设置 rownames = FALSE 这样它就不会添加 extra/unnecessary 列.

但是,当我执行上面的语句时,出现以下错误:

Error in sqlSave(conn, df, tablename = "[PL_DEV].[PL_A].[X]", : 42S01 2714 [Microsoft][SQL Server Native Client 11.0][SQL Server] There is already an object named 'X' in the database. [RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE [PL_DEV].[PL_A].[X]
("ST" varchar(255), "YEAR" varchar(255), "INTERCEPT" float, "Y" float, "Z" float, "U" float)'

如果我执行以下命令,我可以将数据插入 SQL table([master].[dbo].[df] 更具体):

sqlSave(conn, dat = df)

但是,一旦数据在此 table 中,就会出现同样的问题,我无法将更多数据插入 table。

有谁知道我做错了什么或其他功能会为我做同样的事情吗?上周我刚开始用 R 编程。任何见解将不胜感激。

找到解决方法。

对于循环的第一次迭代,我使用了以下命令:

sqlSave(conn, dat = df, rownames = FALSE)

对于循环的第 2 次到第 n 次迭代,我使用了以下命令:

sqlSave(conn, dat = df, append = TRUE, rownames = FALSE)

这为我在数据库 [PL_DEV] 中创建了一个 table [dbo].[df](因为我将我的 RODBC 直接设置到该数据库)。