gpt4 book ai didi

sas - 在SAS中将变量拆分为等宽间隔

转载 作者:行者123 更新时间:2023-12-04 14:32:01 30 4
gpt4 key购买 nike

我想创建一个离散变量,它将变量 x 分成 1000 个区间。我有以下内容:

DATA have; 
INPUT x;
DATALINES;
1200
3200
5300
49
6500
;
RUN;

我想要的是这样的

data want;
input x y $5-14;
DATALINES;
1200 1000-2000
3200 3000-4000
5300 5000-6000
0049 0000-1000
6500 6000-7000
;
RUN;

我当然可以用定义间隔的 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 ;120032005300496500;run ;
   x    upper    lower        y1200     2000     1000    1000-20003200     4000     3000    3000-40005300     6000     5000    5000-6000  49     1000        0    0000-10006500     7000     6000    6000-7000

另一种方法是根据使用 1000 增量循环生成的数据集定义格式。

关于sas - 在SAS中将变量拆分为等宽间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819508/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com