不服输的倔强 发表于 2019-8-13 14:08:44

用SAS批量把连续性数据转换成分类数据,可处理表达谱数据


假如我们有一个数据名为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;
页: [1]
查看完整版本: 用SAS批量把连续性数据转换成分类数据,可处理表达谱数据