我遇到数据集问题。有一个自由形式的字符变量分布在多行上。我想把这个变量放到新变量中,所以每个观察都在它自己的行上
下面是一个示例数据集
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
非常感谢任何帮助
答案 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;