我这里有这个数据集,如下所示:
基本上我想操纵数据集以便我拥有 GVKEY1作为唯一的如1004然后是一个独特的年份编号,例如1996年之后的几个gvkey2。但是每年gvkey2的数量是不一样的。有谁知道如何解决这个问题?这意味着我将拥有10个gvkey1的12行数据,因为我有从1996年到2008年的年份。然后每年我会有很多列,每列都有一个gvkey2。
最诚挚的问候,
纳兹
答案 0 :(得分:3)
你能不能只使用PROC TRANSPOSE?
proc sort data=your_data_set out=temp1;
by gvkey1 year;
run;
proc transpose data=temp1 out=temp2;
by gvkey1 year;
var gvkey2;
run;
这将为您提供一系列变量COL1 - COLx。对不同的变量名称使用PREFIX选项。
答案 1 :(得分:0)
我不确定我是否理解你的问题,但如果你正在寻找独特的gvkey1 / year对,你可以做以下任何一种:
proc sql;
create table results as
select distinct gvkey1, year
from _your_data_set;
quit;
或
proc sort data=_your_data_set(keep=gvkey1 year) out=results nodupkey;
by gvkey1 year;
run;
如果那不是您要找的内容,我建议发布您想要的结果示例。