Sas 将数据集中的一列按年份和另一列进行转换
我这里有一个数据集,如下所示: 基本上,我想操纵数据集,以便 GVKEY1是唯一的,如1004,然后是唯一的年份号,如1996,然后是几个GVKEY1。然而,每年gvkey2的数量并不相同。有人知道如何避开这个问题吗?这意味着,从1996年到2008年,我将拥有1004年gvkey1的12行数据。然后每年我都会有很多专栏,每个专栏都会有一个gvkey2 致以最良好的祝愿Sas 将数据集中的一列按年份和另一列进行转换,sas,Sas,我这里有一个数据集,如下所示: 基本上,我想操纵数据集,以便 GVKEY1是唯一的,如1004,然后是唯一的年份号,如1996,然后是几个GVKEY1。然而,每年gvkey2的数量并不相同。有人知道如何避开这个问题吗?这意味着,从1996年到2008年,我将拥有1004年gvkey1的12行数据。然后每年我都会有很多专栏,每个专栏都会有一个gvkey2 致以最良好的祝愿 Naz我不确定是否理解您的问题,但如果您正在寻找独特的gvkey1/年配对,您可以执行以下任一操作: proc sql;
Naz我不确定是否理解您的问题,但如果您正在寻找独特的gvkey1/年配对,您可以执行以下任一操作:
proc sql;
create table results as
select distinct gvkey1, year
from _your_data_set;
quit;
或
如果这不是您想要的结果,我建议发布一个您想要的结果示例。我不确定我是否理解您的问题,但如果您想要独特的gvkey1/年配对,您可以执行以下任一操作:
proc sql;
create table results as
select distinct gvkey1, year
from _your_data_set;
quit;
或
如果这不是你想要的,我建议你发布一个你想要的结果的例子。你能不能不使用PROC转置
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。对不同的变量名使用前缀选项。您不能只使用PROC转置吗
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。对不同的变量名使用前缀选项。我认为您需要在proc转置中添加'year'作为BY变量。否则,这似乎是最简单的解决方案。我认为您需要在proc转置中添加'year'作为一个BY变量。否则,这似乎是最简单的解决方案。