且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SAS - 根据 ID 列的值将单列拆分为两列

更新时间:2022-12-10 16:47:31

您可以使用 proc transpose 执行此操作,但您需要对数据进行排序.不过,我相信这正是您要寻找的.​​p>

You can do this using proc transpose but you will need to sort the data. I believe this is what you're looking for though.

proc sort data=have;
by group replicate;
run;

数据已排序,因此现在您可以使用 by-group 进行转置.

The data is sorted so now you have your by-group for transposing.

proc transpose data=have out=want(drop=_name_) prefix=count_;
by group replicate;
id sex;
var count;
run;

proc print data=want;

然后你得到:

Obs    group    replicate    count_F    count_M

 1       1          A           3          2
 2       1          B           4          2
 3       1          C           4          5
 4       2          A           5          4
 5       2          B           6          3
 6       2          C           2          2
 7       3          A           5          1
 8       3          B           3          4
 9       3          C           3          1