У меня есть функция, которая что-то делает с датой и функцией, которая принимает два аргумента для вычисления. Сейчас давайте предположим, что они выглядят следующим образом:kdb +: функция с двумя аргументами из столбцов
d:{[x] :x.hh}
f:{[x;y] :x+y}
Теперь я хочу использовать функцию f
в запросе следующим образом:
select f each (columnOne,d[columnTwo]) from myTable
Поэтому я сначала хочу, чтобы преобразовать один столбец в соответствующие номера используя функция d
. Затем, используя как columnOne
, так и вывод d[columnTwo]
, я хочу рассчитать результат f
.
Понятно, что описанный выше подход не работает, поскольку он не работает с ошибкой 'rank
.
Я также пробовал select f ./: (columnOne,'d[columnTwo]) from myTable
, который также не работает.
Как это сделать? Обратите внимание, что мне нужно ввести columnOne
и columnTwo
в f
так, чтобы соответствующие строки по-прежнему совпадали. Например. введите строку 1 из columnOne
и строку 1 из columnTwo
одновременно в f
.
Я попробую это. На самом деле моя настоящая функция 'd' делает что-то еще. Я просто сделал это «.hh» для этого вопроса. Но это кажется очень полезным. Спасибо! –
Теперь, когда я думаю об этом, обе мои функции 'f' и' d', вероятно, не являются * векторами. Следовательно, оба требуют своего рода «каждый» в качестве входных данных. Как будет работать синтаксис? Спасибо заранее :) –
Ничего, я сам нашел синтаксис (я обновил ваш ответ с помощью некоторых примерных запросов). Это было так же, как и вы. Еще раз спасибо :) –