创建宏为我的数据集sas中的分类变量创建虚拟变量
我已经编写了以下SAS代码来为所有分类变量创建虚拟变量。然而,代码并没有给出期望的结果 /#在工作库中创建数据集的副本#/ /#获取数据集中变量的名称和类型创建宏为我的数据集sas中的分类变量创建虚拟变量,sas,Sas,我已经编写了以下SAS代码来为所有分类变量创建虚拟变量。然而,代码并没有给出期望的结果 /#在工作库中创建数据集的副本#/ /#获取数据集中变量的名称和类型 proc contents data= model_data out= var_names(keep=name type)noprint; run; /#创建宏以创建虚拟变量编码#/ /#根据类型调用宏并传递数据集名称和变量名称。如果type=2,则它是分类变量#/ 请参阅帖子请参阅帖子我不建议为此使用宏和数据步骤。SAS拥有出色的
proc contents data= model_data out= var_names(keep=name type)noprint;
run;
/#创建宏以创建虚拟变量编码#/
/#根据类型调用宏并传递数据集名称和变量名称。如果type=2,则它是分类变量#/
请参阅帖子请参阅帖子我不建议为此使用宏和数据步骤。SAS拥有出色的解决方案,可以完成所有繁重的工作。简单且记录良好
data nominal;
infile datalines dsd;
input hair$ eye$;
datalines;
brown,brown
brown,blue
red,blue
red,brown
;;;;
proc transreg design;
model class(hair eye / zero=none);
output out=dummies(drop=_: intercept);
run;
%put NOTE: Dummies: &=_TRGINDN &=_TRGIND;
proc print;
run;
我不建议为此使用宏和数据步骤。SAS拥有出色的解决方案,可以完成所有繁重的工作。简单且记录良好
data nominal;
infile datalines dsd;
input hair$ eye$;
datalines;
brown,brown
brown,blue
red,blue
red,brown
;;;;
proc transreg design;
model class(hair eye / zero=none);
output out=dummies(drop=_: intercept);
run;
%put NOTE: Dummies: &=_TRGINDN &=_TRGIND;
proc print;
run;
SAS在大多数需要假人的过程中都有CLASS语句,当您确实需要创建假人时,SAS也有相应的过程。PROC GLMMOD和PROC TRANSREG是良好的起点。什么是不理想的结果?更重要的是,期望的结果是什么?SAS在大多数需要假人的过程中都有CLASS语句,当您确实需要创建假人时,SAS也有相应的过程。PROC GLMMOD和PROC TRANSREG是良好的起点。什么是不理想的结果?更重要的是,期望的结果是什么?
data _null_;
set var_names;
if type=2 then call execute('%cat(model_data,'||name||')');
run;
data nominal;
infile datalines dsd;
input hair$ eye$;
datalines;
brown,brown
brown,blue
red,blue
red,brown
;;;;
proc transreg design;
model class(hair eye / zero=none);
output out=dummies(drop=_: intercept);
run;
%put NOTE: Dummies: &=_TRGINDN &=_TRGIND;
proc print;
run;