我在这里有这个数据集,如下所示:
基本上我想操纵数据集,使 GVKEY1 具有唯一性,例如 1004,然后是唯一的年份编号,例如 1996,然后是几个 gvkey2。但是,每年 gvkey2 的数量并不相同。有谁知道如何解决这个问题?这意味着我将为 1004 年的 gvkey1 提供几 12 行数据,因为我有 1996 年到 2008 年的年份。然后每年我都会有很多列,每列都有一个 gvkey2。
此致,
纳兹
我在这里有这个数据集,如下所示:
基本上我想操纵数据集,使 GVKEY1 具有唯一性,例如 1004,然后是唯一的年份编号,例如 1996,然后是几个 gvkey2。但是,每年 gvkey2 的数量并不相同。有谁知道如何解决这个问题?这意味着我将为 1004 年的 gvkey1 提供几 12 行数据,因为我有 1996 年到 2008 年的年份。然后每年我都会有很多列,每列都有一个 gvkey2。
此致,
纳兹
你不能只使用 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 选项。
我不确定我是否理解您的问题,但如果您正在寻找独特的 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;
如果这不是您想要的,我建议发布您想要的结果示例。