SAS中文论坛

标题: 如何将数据集的变量名作为第一行的观察值 [打印本页]

作者: shiyiming    时间: 2009-4-30 14:42
标题: 如何将数据集的变量名作为第一行的观察值
data aaa;
input a$ b$ c$;
cards;
1 2 3
4 5 6
;
run;

希望得到的数据集:
a b c
a b c
1 2 3
4 5 6
作者: shiyiming    时间: 2009-5-1 00:06
标题: Re: 如何将数据集的变量名作为第一行的观察值
data aaa;
input a$ b$ c$;
cards;
1 2 3
4 5 6
;
run;

data new(keep = a_ b_ c_ rename=(a_=a b_=b c_=c));
set aaa;
array var{*} $ a b c;
array var_{*}$ a_ b_ c_;
if _n_ = 1 then do;
  do i=1 to 3;
     var_{i}=vname(var{i});
  end;
  output;
  output;
end;
do i=1 to 3;
   var_{i}=var{i};
end;
output;
run;
proc print;run;

*my code is a little bit stupid but it works;
*Thanks;
作者: shiyiming    时间: 2009-5-1 00:31
标题: Re: 如何将数据集的变量名作为第一行的观察值
有个问题,就是变量类型~~~。如果原数据集的类型不是文字,而是数字。
这跟stat的上个问题是一个。如果解决了上一个这个问题也就很容易解决了。。
在这个问题上我是用了偏方~~,macro跟datastep合用,大约也是15行就搞定,适用所有数据集。
作者: shiyiming    时间: 2009-5-6 16:49
标题: Re: 如何将数据集的变量名作为第一行的观察值
请教楼上的大侠,可否把偏方share一下呢




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2