update!时报错列数据类型不匹配

我有一个因子表,想给表中某些行的所有因子列都加上一个数,demo如下:

factor=table(now() as tradeTime,`600009 as secID,1.0 as factor1,2.0 as factor2,3.0 as factor3,4.0 as factore4,5.0 as factor5)
for(i in factor.columnNames()){
    if(left(i,6)!="factor") 
        continue
    update!(factor, i, i + 10)
}

上述代码在DolphinDB database的GUI中执行会报错如下:

The data type of the new values does not match the data type of column factor1

我把10改成10.0也不行,请问是什么原因?

阅读 2.1k
1 个回答

update!(factor, i, i + 10)中i是字符串,i+10就是一个字符串,不是一个字段,所以可改成:

update!(factor, i, factor[i] + 10)

或者

factor[i] = factor[i] + 10

或者

update!(factor, i, expr(sqlCol(i), +, 10)) 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进