如何在SAS中使用PROC TRANSPOSE(附实例)

1,151 阅读1分钟

你可以使用SAS中的PROC TRANSPOSE来快速将数据集从长格式转为宽格式

这个函数使用以下基本语法:

proc transpose data=long_data out=wide_data;
    by var1;
    id var2;
    var var3;
run;

where:

  • :要沿行放置的变量
  • id:沿着列放置的变量
  • var:变量,其值被放置在数据集中

下面的例子展示了如何在实践中使用PROC TRANSPOSE

例子:如何在SAS中使用PROC TRANSPOSE

假设我们在SAS中拥有以下长格式的数据集:

/*create dataset in long format*/
data long_data;
    input team $ variable $ value;
    datalines;
A Points 88
A Assists 12
A Rebounds 22
B Points 91
B Assists 17
B Rebounds 28
C Points 99
C Assists 24
C Rebounds 30
D Points 94
D Assists 28
D Rebounds 31
;
run;

/*view dataset*/
proc print data=long_data;

我们可以使用PROC TRANSPOSE将这个数据集从长格式转换成宽格式。

/*create new dataset in wide format*/
proc transpose data=long_data out=wide_data;
    by team;
    id variable;
    var value;
run;

/*view wide data*/
proc print data=wide_data;

注意,这个数据集所包含的信息与之前的数据集相同,但它只是以宽格式显示。

默认情况下,SAS会创建一个_NAME_变量,显示数据集中的数值使用的是哪个变量。

在使用PROC TRANSPOSE时,可以随意使用DROP语句来删除这个变量:

/*create new dataset in wide format*/
proc transpose data=long_data out=wide_data(drop=_name_);
    by team;
    id variable;
    var value;
run;

/*view wide data*/
proc print data=wide_data;

注意,_NAME_变量已经从数据集中删除。

其他资源

下面的教程解释了如何在SAS中执行其他常见的任务:

如何在SAS中使用Proc Summary
如何在SAS中使用Proc Tabulate
如何在SAS中创建频率表