如何在 sas 中使用 proc transpose(附示例)


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

该函数使用以下基本语法:

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

金子:

  • by :沿线放置的变量
  • 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;
    variableid ;
    varvalue ;
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;
    variableid ;
    varvalue ;
run ;

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

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

其他资源

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

如何在SAS中使用过程摘要
如何在 SAS 中使用 Proc Tabulate
如何在SAS中创建频率表

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注