KDB/Q 序列生成类似于R的seq(from, to, step)

KDB/Q sequence generation similar to R's seq(from, to, step)

有没有办法用给定的步骤生成数​​字序列,类似于 R 的 seq(from, to, step) 函数?

例如

> seq(1,20,2)   
[1]  1  3  5  7  9 11 13 15 17 19

简单地使用算术:-)

q){[step;start;length] start+step*til length}[2;0;10]
0 2 4 6 8 10 12 14 16 18
q){[step;start;length] start+step*til length}[3;0;10]
0 3 6 9 12 15 18 21 24 27

user2393012 的答案很接近,但不完全是在寻找什么问题。以下效果很好-

q)seq:{x+z*til ceiling(1+y-x)%z}
q)seq[1;20;2]
1 3 5 7 9 11 13 15 17 19

替代方案(但不比更简单的算术解决方案更好)

q){-1_(y>=)(z+)\x}[1;20;2]
1 3 5 7 9 11 13 15 17 19

另一个选项( 的细微变化):

q) {(z+)\[floor(y-x)%z;x]} [1;20;2]
1 3 5 7 9 11 13 15 17 19