我目前有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中是否有一种宏观方式可以迭代地执行此类操作?
谢谢!
答案 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;
您只需使用嵌套循环,使用point
和nobs
选项迭代遍历县表,然后为每个内循环迭代输出一行。
data want;
set have;
do _n_ = 1 to nobs_counties;
set counties nobs=nobs_counties point=_n_;
output;
end;
run;
您可能希望做一些工作来连接县/年龄组变量,或者只是将它们分开。