SAS:重复行并更改一些变量

时间:2017-06-28 19:52:27

标签: sas rows

我有这些数据,看起来像这样:

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;

,但我看不出如何正确设置。

1 个答案:

答案 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;