我这里有这个数据集,看起来像这样:移调数据集中,但在今年一列和另一列
基本上,我要处理的数据集,让我有 GVKEY1独特如1004,然后是一个独特的年份数字,如1996年,然后是几个gvkey2。然而,每年的gvkey2数量并不相同。有谁知道如何解决这个问题?这意味着我将拥有gvkey1的几行12行数据,因为我有从1996年到2008年的数年。然后每年我会有许多列,每列将有一个gvkey2。
最好的问候,
纳兹
我这里有这个数据集,看起来像这样:移调数据集中,但在今年一列和另一列
基本上,我要处理的数据集,让我有 GVKEY1独特如1004,然后是一个独特的年份数字,如1996年,然后是几个gvkey2。然而,每年的gvkey2数量并不相同。有谁知道如何解决这个问题?这意味着我将拥有gvkey1的几行12行数据,因为我有从1996年到2008年的数年。然后每年我会有许多列,每列将有一个gvkey2。
最好的问候,
纳兹
我不知道我理解你的问题,但如果你正在寻找独特gvkey1 /年的对,你可以做以下任一:
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;
如果这不是你要找什么,我建议张贴的你想要的结果的例子。
你不能只使用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选项。
我想你需要在proc转置中添加'year'作为BY变量。否则,这似乎是最简单的解决方案。 – Longfish
@凯斯 - 谢谢,你是对的。我已更新。 – DavB