方差分析中,要求数据为如下形式:
group x
A 1
A 2
A 1
B 3
B 3
B 1
C 1
...
但很多时候我们得到的数据是这样的形式:
A 1 2 1
B 3 3 1
C 1 2 3
如何读入这种数据,得到理想的形式;
数据量小,可以手工输入,但若数据到达几百几千,就行不通了。
通过以下程序,可以解决这种问题;
data a;
input group $ @;
do i=1 to 3; /*此处为各组数据量相等的情况*/
input x @;
output;
end;
cards;
A 1 2 1
B 3 3 1
C 1 2 3
;
run;
若各组数据量不等;
A 1 2 1 4 5
B 3 3 1 4
C 1 2 3
上述的方法必然行不通,需要将程序稍加修改;
data a;
infile cards missover;
input group $ @;
do i=1 to 5; /*循环的终量要大于等于任意一组的数据量,这里的循环终量就要>=5*/
input x @;
if x =. then delete;
output;
end;
cards;
A 1 2 1 4 5
B 3 3 1 4
C 1 2 3
;
run;
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
当然也有这种数据:
A B C
1 3 1
2 3 2
1 1 3
这类数据的读入,好多教材都讲过,简单说一下;
data a(drop=i);
array name(3) $ _temporary_ ('A','B','C');
do i=1 to dim(name);
input x@@;
group=name(i);
output;
end;
1 3 1
2 3 2
1 1 3
;
run;
希望能有所帮助。