如何在SAS中记录100多个虚拟变量到多个级别的定性变量

时间:2018-11-10 00:02:50

标签: sas statistics

我正在使用SAS,希望记录具有50多种不同定性假人的变量。例如,美国的州。

在这种情况下,我只想将它们减少为4或5个水平虚拟变量作为定量变量。

我有几个想法,例如使用if / else语句,但是,问题是我必须写下并在SAS中指定每个区域名称,并且代码看起来很沉重。

还有其他没有冗余代码的方法吗?还是避免写每个特定的变量名?在SAS中。

任何想法都值得赞赏!

1 个答案:

答案 0 :(得分:1)

方法1:

使用IN,但是您仍然必须列出变量。您也可以通过格式来实现,但是无论如何都必须先定义格式。

if state in ('AL', 'AK', 'AZ' ... etc) then state_group = 1;
else if state in ( .... ) then state_group = 2;

方法2:

对于格式,请使用PROC FORMAT创建格式,然后应用它。

proc format;
value $ state_grp_fmt
'AL', 'AK', 'AZ' = 1
'DC', 'NC' = 2 ;
run;

然后可以将其与PUT语句一起使用。

State_Group = put(state, state_grp_fmt);