cols 是字符串,不能直接写在 SQL 里作为查询这一列的依据,如果要根据给定的列名,查询这列需要用元编程:
col="xxx"
sql(select=[sqlCol("trade_date"),sqlCol("symbol"), sqlColAlias(makeUnifiedCall(sma, [sqlCol(col), 5]), `aaa) ], from="data_table" )
我代码如下,执行报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)