我正在创建一个表并使用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)
我是否只是遗漏了一些非常明显的东西,比如从数据库导入时表被转换为错误的格式?或者我还能做些什么才能让它发挥作用?
干杯.
我正在尝试从小数日期格式(从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月的某个时间(我不完全了解它们,我正在通过图表阅读它们).
我似乎无法找到将此格式转换回通常日期格式的标准方法.
有谁能够帮我?
谢谢
我想编写一个创建时间序列的函数,但我希望它能够生成时间序列的名称作为调用的一部分.
有点
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并返回它),但有没有办法让它与一个函数调用一起工作?
谢谢!