Sas 将数据转换为行、多列

Sas 将数据转换为行、多列,sas,transpose,Sas,Transpose,我的数据如下所示: ID Month Variable 1 1 Y 1 2 N 1 3 Y 2 1 Y 2 2 Y 2 3 Y 我需要转换它,以便ID和month在行中,变量值在列中 输出数据: ID Month Variable_Y Variable_N 1 1 Y 1 2 N

我的数据如下所示:

ID   Month  Variable
1     1        Y
1     2        N
1     3        Y
2     1        Y
2     2        Y 
2     3        Y
我需要转换它,以便ID和month在行中,变量值在列中 输出数据:

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

如何做到这一点?

使用PROC TRANSPOSE非常简单

proc transpose data=from out=transposed (drop=_name_)
 prefix=variable_
;
 by id month;
 id variable;
 var variable;
run; 
或使用数据步骤:

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;

你试过PROC转置吗?再次发布您尝试的解决方案中的问题。