SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 636|回复: 3
打印 上一主题 下一主题

如何将数据集的变量名作为第一行的观察值

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-4-30 14:42:52 | 只看该作者

如何将数据集的变量名作为第一行的观察值

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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-5-1 00:06:12 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-5-1 00:31:56 | 只看该作者

Re: 如何将数据集的变量名作为第一行的观察值

有个问题,就是变量类型~~~。如果原数据集的类型不是文字,而是数字。
这跟stat的上个问题是一个。如果解决了上一个这个问题也就很容易解决了。。
在这个问题上我是用了偏方~~,macro跟datastep合用,大约也是15行就搞定,适用所有数据集。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-5-6 16:49:24 | 只看该作者

Re: 如何将数据集的变量名作为第一行的观察值

请教楼上的大侠,可否把偏方share一下呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 14:07 , Processed in 0.076252 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表