楼主: JasonKQiao
2263 3

求问SAS宏 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

33%

还不是VIP/贵宾

-

威望
0
论坛币
302 个
通用积分
0.1500
学术水平
1 点
热心指数
0 点
信用等级
0 点
经验
1471 点
帖子
93
精华
0
在线时间
59 小时
注册时间
2010-10-3
最后登录
2023-5-7

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想使用SAS宏做如下的工作:
  对一个文件夹下的所有数据集,进行变量重命名(rename)排序(retain)删除重复观测和一些特定的观测
  之后用set把它们合并起来
  求高手指点哈
  O(∩_∩)O谢谢
二维码

扫码加我 拉你入群

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

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

关键词:SAS宏 rename RETAIN 高手指点 重复观测 SAS

沙发
nudtpc 发表于 2011-6-3 10:15:50 |只看作者 |坛友微信交流群
也在学习宏呢

使用道具

藤椅
sas_user 发表于 2011-6-3 12:46:20 |只看作者 |坛友微信交流群
1# JasonKQiao
data a;
input a1-a3;
datalines;
1 2 3
3 5 2
1 2 3
4 6 7
;
run;
data b;
input b1-b2;
datalines;
3 6
4 5
3 6
1 2
;
run;

%macro reset(lib=);
proc contents data=&lib._all_ out=sasuser.list;
run;
proc contents data=sasuser.list varnum; run;
proc sql;
select distinct memname into : ds separated by
' ' from sasuser.list;
select max(varnum) into : varnum separated by
' ' from sasuser.list group by memname;
quit;
%let number=1;
%do %while (%scan(&ds,&number) ne );
%let dataset=%scan(&ds,&number);
proc sort data=&dataset out=&dataset nodup;
by _all_;
quit;
%let vn=%scan(&varnum,&number);
%do i=1 %to &vn;
proc sql;
select name into : name from sasuser.list where memname=
"&dataset" and varnum=&i;
quit;
proc datasets library=&lib;
modify &dataset;
rename &name=var&i;
quit;
%end;
%let number=%eval(&number+1);
%end;
data combine;
set a b;
run;
%mend;
%reset (lib=WORK);
已有 1 人评分热心指数 收起 理由
crackman + 2 鼓励积极发帖讨论

总评分: 热心指数 + 2   查看全部评分

使用道具

板凳
stata18 发表于 2011-6-3 14:49:47 |只看作者 |坛友微信交流群
保存下来。算作资料吧。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 13:24