全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1473 2
2012-07-10
方差分析中,要求数据为如下形式:
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;



希望能有所帮助。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-7-10 20:12:27
好啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-22 22:20:58
有用
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群