Я новичок в kdb+q. Я столкнулся со следующей проблемой, связанной с таблицами, в одном из моих упражнений.
Имея ключевую таблицу t с единственным ключом = id, напишите функцию, которая возвращает другую таблицу T, такую что:
а) Для каждой строки в t имеется столько строк в T, сколько ненулевых значений в этой строке t.
б) Каждая строка в T содержит ровно одно ненулевое значение, которое должно совпадать с соответствующим ненулевым значением в t.
Примеры:
If t is
id |a b
----------
1 |1 1
2 |1 0n
then T would be
id | a b
-----------
1 |1 0n
1 |0n 1
2 |1 0n
and if t is
id | a b c
------------------
1 | 1 3 0n
2 | 2 0n 4
3 | 0n 0n 5
then T would be
id |a b c
----------------
1 |1 0n 0n
1 |0n 3 0n
2 |2 0n 0n
2 |0n 0n 4
3 |0n 0n 5
Из того, что я вывел из вопроса, если мы рассматриваем каждую строку как n-кортеж, он проецирует вектор вдоль каждого из его n измерений, где 0n ведет себя как 0 в обычном декартовом векторе.
Я пытался написать некоторые функции, но доступ к каждой строке и забота о нулях были проблемой.
Кто-нибудь может мне с этим помочь ?