KDB / Q序列生成类似于R的序列(从,到,步骤)

时间:2015-07-23 00:41:32

标签: kdb

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

e.g。

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

另一种选择(但不比简单的算术解决方案更好)

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

答案 2 :(得分:1)

只需使用算术: - )

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

答案 3 :(得分:1)

另一种选择(terrylynch solution的轻微变化):

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