|
假如我们有一个数据名为data 的数据集里面有var39到var912这么多连续性变量,我们要生成以中位数为点的分类变量
且生成新的变量为t39-t912,那么我们可以用下面的代码轻松实现。
- proc means data=data; /*数据集*/
- var var39-var912; /*变量名字,如果是连续的数字编码可以这样写,也可以单独写出每个变量的名字*/
- output out=fmedian/*输出中位数*/
- median(var39-var912)=varm39-varm912;
- run;
- data data;
- if _n_=1 then set fmedian;
- set data;
- array xvalue{ 874} var39-var912;
- array mvalue{ 874} varm39-varm912;
- array tvalue{ 874} t39-t912;
- do i=1 to 874;
- if xvalue{i} >= mvalue{i} then tvalue{i}=1;
- else tvalue{i}=0;
- end;
- keep t39-t912;/*保存新的数据集*/
- run;
复制代码 |
|