有没有办法用给定的步骤生成数字序列,类似于R的seq(from,to,step)函数?
e.g。
> seq(1,20,2)
[1] 1 3 5 7 9 11 13 15 17 19
答案 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