我想将来自不同变量的不同观察结果组合在一个变量中。这些观测值都是相互关联的,并且是重复的测量。
例:
当前数据库布局。
**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 中执行此操作吗?
创建 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;