将数据转换为行,多列

时间:2013-10-18 08:05:00

标签: sas transpose

我的数据如下所示:

ID   Month  Variable
1     1        Y
1     2        N
1     3        Y
2     1        Y
2     2        Y 
2     3        Y

我需要转置它,使得ID和月份在行中,而变量值在列中 Outputdata:

ID  Month   Variable_Y  Variable_N
1     1       Y
1     2                     N
1     3       Y
2     1       Y
2     2       Y
2     3       Y

我该怎么做?

由于

2 个答案:

答案 0 :(得分:0)

使用PROC TRANSPOSE非常简单。

proc transpose data=from out=transposed (drop=_name_)
 prefix=variable_
;
 by id month;
 id variable;
 var variable;
run; 

答案 1 :(得分:0)

或使用数据步骤:

data test_output (drop = variable);
  set test_input;
  format Variable_Y Variable_N $1.;

  if variable = "Y" then do;
     Variable_Y = "Y";
     call missing (Variable_N);
  end;

  else if variable = "N" then do;
     Variable_N = "N";
     call missing (Variable_Y);
  end;

 run;