SAS宏创建具有64个前缀

时间:2017-08-28 21:17:39

标签: sas

我目前有24个年龄组的数据存储如下:

Group   Estimate
agegp1  4.5
agegp2  5
agegp3 7.8
.
.
.
agegp24 9.5

我需要让这24个年龄组重复64次,每次都有64个县的唯一前缀。所以它会像:

NewGroup       Estimate
CountyAagegp1  4.5
CountyBagegp1  4.5
CountyCagegp1  4.5

CountyAagegp2 5
CountyBagegp2 5
CountyCagegp2 5

所有24个团体和所有64个县。

SAS中是否有一种宏观方式可以迭代地执行此类操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

不需要宏,只需要一个常规的旧数据步骤(或proc sql)。

如果您有这样的表:

data have;
  input Group $  Estimate;
datalines;
agegp1  4.5
agegp2  5
agegp3 7.8
;;;;
run;

像这样的县表:

data counties;
  input county $;
  datalines;
Cook
Lake
Dekalb
;;;;
run;

您只需使用嵌套循环,使用pointnobs选项迭代遍历县表,然后为每个内循环迭代输出一行。

data want;
  set have;
    do _n_ = 1 to nobs_counties;
      set counties nobs=nobs_counties point=_n_;
      output;
    end;
run;

您可能希望做一些工作来连接县/年龄组变量,或者只是将它们分开。