小编SiK*_*iHe的帖子

更新从DB读取的表时,sqlUpdate返回错误"[RODBC]更新中的exec失败"

我正在创建一个表并使用RODBC将其写入数据库.没问题.

首先,我尝试更新R中的表,并在同一个R脚本中使用sqlUpdate逐行写回更新,并在初始化时使用相同的R会话.没问题.

但是,当我尝试将其拆分为两个脚本(一个用于初始化表,一个用于将其读回R,计算更新并将更新写入数据库)时,我收到以下错误(导入和更新工作正常,它是只需将其写回失败的数据库):

[RODBC] Failed exec in Update
Run Code Online (Sandbox Code Playgroud)

我用来更新的代码如下(当表在我的R会话中并且初始化和更新在同一个脚本中时有效):

conOut <- odbcConnect("myDB", uid = "myID", pwd = "myPwd", believeNRows = T)

sqlUpdate(conOut, myTable)

odbcClose(conOut)
Run Code Online (Sandbox Code Playgroud)

我是否只是遗漏了一些非常明显的东西,比如从数据库导入时表被转换为错误的格式?或者我还能做些什么才能让它发挥作用?

干杯.

database r rodbc sql-update

6
推荐指数
1
解决办法
2081
查看次数

如何将十进制日期格式(例如2011.580)转换为正常日期格式?

我正在尝试从小数日期格式(从changepoint包返回类型cpts.ts())更改为正常日期格式%Y-%m-%d.例:

cpts.ts(myTimeSeries.BinSeg)
[1] 2001.667 2004.083 2008.750 2011.583 2011.917
Run Code Online (Sandbox Code Playgroud)

实际日期是在2001年8月,2004年1月,2008年9月,2011年6月/ 7月和2011年12月的某个时间(我不完全了解它们,我正在通过图表阅读它们).

我似乎无法找到将此格式转换回通常日期格式的标准方法.

有谁能够帮我?

谢谢

r date-formatting

5
推荐指数
1
解决办法
1907
查看次数

我可以在R中创建一个函数返回一个命名对象吗?

我想编写一个创建时间序列的函数,但我希望它能够生成时间序列的名称作为调用的一部分.

有点

makeTS(my.data.frame, string(dateName), string(varName)){
-create time series tsAux from my.data.frame, dateName and varName
-create string tsName
(-the creation of tsAux is not a problem)
assign(tsName, tsAux)
return(tsName)
} 
Run Code Online (Sandbox Code Playgroud)

这也许并不奇怪,这会返回字符串tsName,但有什么方法可以让它返回一个命名对象?

我试过了

do.call('<-', list(tsName, tsAux))
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用

as.name(tsName) <- tsAux
Run Code Online (Sandbox Code Playgroud)

但似乎没什么用.

我知道

tsName <- makeTS2(my.data.frame, dateName, varName) 
Run Code Online (Sandbox Code Playgroud)

会做的伎俩(makeTS2()只是生成时间序列tsAux并返回它),但有没有办法让它与一个函数调用一起工作?

谢谢!

r function return-type

1
推荐指数
1
解决办法
413
查看次数