我有这些数据,看起来像这样:
data test;
input ID $ Week Age Weight City $ Sex $;
datalines;
John 2 64 145 OK M
Gary 3 46 176 OM M
;
run;
所以,这里我需要行,我希望做到以下几点: - 重复每一行所需的次数,以获得改变三个变量周,权重和城市的每个组合-1,0和+ 1。 例如,第一行将乘以3 * 3 * 3倍:
John 1 63 144 OK M
John 1 63 145 OK M
John 1 63 146 OK M
John 1 64 144 OK M
John 1 64 145 OK M
John 1 64 146 OK M
... etc
我在思考像循环这样的事情:
data test2;
set test;
do i = -1 to 1;
do j = -1 to 1;
do k = -1 to 1;
end;
end;
output;
end;
run;
,但我看不出如何正确设置。
答案 0 :(得分:2)
你几乎就在那里,你需要为变量添加增量。
data test;
input ID $ Week Age Weight City $ Sex $;
datalines;
John 2 64 145 OK M
Gary 3 46 176 OM M
;
run;
data want;
set test;
do j=-1 to 1;
weight = weight + j;
do k=-1 to 1;
age = age + k;
do l = -1 to 1;
week = week + l;
output;
end;
end;
end;
drop j k l;
run;