我想创建一个离散变量,它将变量x除以1000的间隔.我所拥有的是以下内容:
DATA have;
INPUT x;
DATALINES;
1200
3200
5300
49
6500
;
RUN;
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的
data want;
input x y $5-14;
DATALINES;
1200 1000-2000
3200 3000-4000
5300 5000-6000
0049 0000-1000
6500 6000-7000
;
RUN;
Run Code Online (Sandbox Code Playgroud)
我当然可以使用if else语句编写数据步骤来定义间隔,但是我有100个这样的间隔,所以这将是非常耗时的.
谢谢.
您可以使用该round()函数,舍入到最接近的1000,但首先应用500的偏移量.这会给你上限.然后减去1000得到下限.
data have ;
input x ;
upper = round(x+500,1000) ;
lower = sum(upper,-1000) ;
y = catx('-',put(lower,z4.),put(upper,z4.)) ;
datalines ;
1200
3200
5300
49
6500
;
run ;
x upper lower y 1200 2000 1000 1000-2000 3200 4000 3000 3000-4000 5300 6000 5000 5000-6000 49 1000 0 0000-1000 6500 7000 6000 6000-7000
另一种方法是基于使用1000个增量的循环生成的数据集来定义格式.