将不同变量组合成一个新变量SAS

时间:2013-10-21 09:45:59

标签: sas

我想在一个变量中结合不同变量的不同观察结果。观察结果彼此相关并且是重复测量。

示例:

当前数据库布局。

**Var1    Dat1    Var2     Dat2     Var3    Dat3**
Obs1a   Dat1a   Dat2a    Dat2a    Obs3a   Dat3a
Obs1b   Dat1b   Dat2b    Dat2b    Obs3b   Dat3b
Obs1c   Dat1c   Dat2c    Dat2c    Obs3c   Dat3c
Obs1d   Dat1d   Dat2d    Dat2d    Obs3d   Dat3d

我想创建一个带有组合观察的新变量:

Var       Dat 
Obs 1a  Dat 1a
Obs 1b  Dat 1b
....    ...
Obs 2a  Dat 2a
Obs 2b  Dat 2b
....    ...  
Obs 3c  Dat 3c
Obs 3d  Dat 3d

有人可以解释我如何在SAS中这样做吗?

1 个答案:

答案 0 :(得分:0)

创建2个“var”和“dat”值的数组。循环遍历它们并使用OUTPUT语句为数组中的每个值创建1个观察值。

data test;
input var1 $ dat1 $ var2 $ dat2 $ var3 $ dat3 $;

datalines;
Obs1a Dat1a Dat2a Dat2a Obs3a Dat3a
Obs1b Dat1b Dat2b Dat2b Obs3b Dat3b
Obs1c Dat1c Dat2c Dat2c Obs3c Dat3c
Obs1d Dat1d Dat2d Dat2d Obs3d Dat3d
;
run;

data test2(keep=var dat);
set test;
array v[3] var1-var3 ;
array d[3] dat1-dat3;
format var dat $8.;

do i=1 to 3;
    var = v[i];
    dat = d[i];
    output;
end;
run;