0

我想将来自不同变量的不同观察结果合并到一个变量中。这些观察都是相互关联的,并且是重复测量。

例子:

当前数据库布局。

**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 中执行此操作吗?

4

1 回答 1

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;
于 2013-10-21T10:35:32.373 回答