SAS,切换行和列,以获得结果

SAS, switch rows and columns, for results

如果有办法,我想重新格式化我的打印结果。

我在 运行 proc 之后得到的是:

Yearㅣ  #  ㅣ Variable  ㅣ   N ㅣMean
-------------------------------------
1991ㅣ  x  ㅣ   AAAAA   ㅣ   x ㅣ x
1991ㅣ  x  ㅣ   BBBBB   ㅣ   x ㅣ x
1991ㅣ  x  ㅣ   CCCCC   ㅣ   x ㅣ x
1992ㅣ  x  ㅣ   AAAAA   ㅣ   x ㅣ x
1992ㅣ  x  ㅣ   BBBBB   ㅣ   x ㅣ x
1992ㅣ  x  ㅣ   CCCCC   ㅣ   x ㅣ x
1993ㅣ  x  ㅣ   AAAAA   ㅣ   x ㅣ x
1993ㅣ  x  ㅣ   BBBBB   ㅣ   x ㅣ x
1993ㅣ  x  ㅣ   CCCCC   ㅣ   x ㅣ x

我想更改此结果 table 以便 1991 1992 1993 列 我希望行显示为:

AAAAA
N
Mean
BBBBB
N
Mean
CCCCC
N
Mean

谢谢。

试试这个。它可能不完全是您想要的,但它可能接近。

proc sort data=WHAT_I_HAVE;
by variable year;

proc transpose data=WHAT_I_HAVE out=WHAT_I_NEED;
by variable;
id year
var n mean;
run;

免责声明:这是未经测试的代码,可能需要调试。

对于显示的输出(相对于生成的输出数据集),您可以使用 Proc TABULATE 轻松安排演示文稿。

SASHELP.FISH 是 SAS 示例数据集,可能与您的数据具有相同的布局。

示例:

演示明智,在 FISH 中,变量 species 将对应于您的 YEAR

比较和对比 MEANS 输出与 TABULATE 输出。数字相同但呈现方式不同(统计信息以行而不是列显示)。

proc means data=sashelp.fish n mean ;
  class species;
  var weight height width;
  where species =: 'P';  * limit for demonstration;
run;


proc tabulate data=sashelp.fish;
  title "Tabulate";  
  title2 font=courier "(weight height width) * (n mean) , species";

  class species;
  var weight height width;

  table (weight height width) * (n mean) , species;

  where species =: 'P';  * limit for demonstration;
run;

将产生这两个输出