X must be a numeric vector

我代码如下,执行报X must be a numeric vector的错误,我的写法是不是不妥当,并如何进行修正呢


def ma process(data table){
    cols = open'high'low'close' volume'amount'vwap
    base_table = select trade date, symbol from data_table
    for(col in cols){
        print(col)
        data = select trade_date, symbol, sma(col,5) as from data_table
        base table = lj(base,table,data,trade date'symbol)
    }
}
stock_db = database('dfs://stock db')
data_table = stock_db.loadTable('stock daily_hfq')
ma_process(data table)
请先 登录 后评论

1 个回答

wale

cols 是字符串,不能直接写在 SQL 里作为查询这一列的依据,如果要根据给定的列名,查询这列需要用元编程:

col="xxx"
sql(select=[sqlCol("trade_date"),sqlCol("symbol"), sqlColAlias(makeUnifiedCall(sma, [sqlCol(col), 5]), `aaa) ], from="data_table" )
请先 登录 后评论