我正在尝试使用以下代码将R数据帧保存回sql数据库:
channel <- odbcConnect("db")
sqlSave(db, new_data, '[mydb].[dbo].mytable', fast=T, rownames=F, append=TRUE)
但是,这将返回错误“在 channel 上找不到表”,同时创建带有列名的空表。重新运行该代码将返回错误“数据库中已经存在一个名为'mytable'的对象”。这会继续循环-有人可以发现错误吗?
最佳答案
这是关于您的数据集的样子吗?
MemberNum x t.x T.cal m.x T.star h.x h.m.x e.trans e.spend
1 2.910165e+12 0 0 205 8.77 52 0 0 0.0449161
我遇到了这个确切的问题几次。这与在 channel 上找不到表无关。根据我的经验,sqlSave在日期和科学计数法方面遇到麻烦。尝试将x转换为因子:
new_data$x = as.factor(new_data$x)
然后sqlSave。如果这样不起作用,请尝试
as.numeric
甚至as.character
(即使这不是您想要的格式)。