转置数据集

时间:2016-11-13 19:57:56

标签: sas

我有原始数据集

1

我想要的是:

2

我的代码:

proc transpose data = lib.original 
       out= lib.new(rename=(col1=Mean col2=Median));
       var  WBCmean RBCmean WBCmedian  RBCmedian;
       run;

但是我得到了

3

你能提一些提示吗?

修改

如果我添加by语句,

proc transpose data = lib.original 
       out= lib.new;
       by Gender;
       var  WBCmean RBCmean WBCmedian  RBCmedian;
       run;
然后我明白了 4

1 个答案:

答案 0 :(得分:0)

一种方法是转换为高瘦的格式。

proc transpose data = have out=middle ;
  by gender ;
  var WBCmean RBCmean WBCmedian  RBCmedian;
run;

然后生成所需的新变量

data middle;
  set middle ;
  testcode = substr(_name_,1,3);
  _name_ = substr(_name_,4);
run;

您可能需要根据原始VAR语句中的变量名称的顺序对数据进行排序,

proc sort data=middle;
  by gender testcode _name_;
run;

然后转换到新的安排。

proc transpose data=middle out=want ;
  by gender testcode ;
  id _name_;
  var col1 ;
run;