你可以使用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中执行其他常见的任务: