保留语句数据在多条线路上传播SAS

时间:2015-05-11 22:12:58

标签: sas

我遇到数据集问题。有一个自由形式的字符变量分布在多行上。我想把这个变量放到新变量中,所以每个观察都在它自己的行上

下面是一个示例数据集

data have;
   input ob_ref $ chardata $ linenum 3.;
   datalines;
321A    MyName  1
321A    John    2
431A    MyName  1
431A    NotJohn 2
431A    ItsFred 3
511A    Geoff   1
754A    Cam 1
;

每个观察都有一个ob_ref,我有一个亚麻变量,表明观测数据分布了多少行。我需要一个新的数据集,每行一个观察,并且字符变量分布在多个变量上。最大的亚麻布是56

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这样的东西?创建一个字符变量数组,然后使用linenum变量将值赋给正确的字符变量。输出给定ob_ref的最后一行。

data want(keep=ob_ref char1-char56);
  array _c $ char1-char56;
  do until (last.ob_ref or eof);
    set have end=eof;
    by ob_ref;
    _c(linenum)=chardata;
  end;
  output;
run;