如何找出每行中几个列的最大值的index

我有下面所示的表:

attachments-2021-06-a89NvW8760c76da6de0a8.png


我是想找出一行的ask_volume中哪个最大,然后找出最大值的index。但我用下面语句会出错:

```

update aa_copy set t_ask_index = find(([ask_volume1,ask_volume2,ask_volume3,ask_volume4,ask_volume5,ask_volume6,ask_volume7,ask_volume8,ask_volume9,ask_volume10]),t_ask_max) context by secu_code

```

请先 登录 后评论

1 个回答

wale

find函数的第一个参数必须是一个普通vector,不能是一个tuple.

你其实是想有一个rowIMax,rowIMin这样的函数,现在DolphinDB有imax,imin版还没有rowImax和rowImin,可以如下自定义一个rowImax:

a1= 2 3 4
a2=1 2 3
a3=1 4 5
a4 =5 3 2
def rowImax(m){
     t = m.transpose()
     return each(imax, t)
}
rowImax(matrix(a1, a2, a3, a4))


更简单的方法是用byRow函数,imax内部实现用了转置,本来是列操作函数,可以应用在行操作上


byRow(imax, matrix(a1, a2, a3, a4))


请先 登录 后评论