有没有一种方法可以通过对SAS中另一个变量的数据进行分组来创建新变量



我是SAS的新手,希望通过对来自另一个变量的数据进行分组,在我的数据集中创建一个新变量。我想通过将数字1-5分组为1,将数字6-10分组为2,对来自变量EDUC的数据进行分组,以创建新的变量new_EDUC。如有任何帮助,我们将不胜感激!

EDUC NEW_EDUC
3    1
2    1
9    2
5    1
1    1
4    1
8    2
1    1
6    2

这看起来像是一个基本的IF/THEN语句。

data want; *output data set name is WANT;
set have; *input data set name is HAVE;
*create new variable;
if  1 <= EDUC <= 5 then NEW_EDUC = 1;
else if 6 <= EDUC <= 10 then NEW_EDUC = 2;
run;

您可以使用简单的算术运算。除以5,四舍五入为整数。

data want;
set have;
NEW_EDUC = ceil(educ/5);
run;

如果您对sql:更熟悉,您也可以使用proc-sql步骤

proc sql;
create table want as
select
case when EDUC >= 1 and EDUC <= 5  then 1
when EDUC >= 6 and EDUC <= 10 then 2
else . end as NEW_EDUC
,*
from have;
quit;

最新更新