全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6273 18
2014-12-08
悬赏 200 个论坛币 未解决
SAS从表达式中提取变量名
%let expression1=age+10=age2                                                     提取出age age2
%let expression2=age=50 & sex=1                                                 提取出age sex
%let expression3=round((sbpl1_1+sbpl1_2+sbpl1_3)/3,1)             提取出sbpl1_1 sbpl1_2 sbpl1_3
%let expression4=sbpl1=round((sbpl1_1+sbpl1_2+sbpl1_3)/3,1)  提取出sbpl1_1 sbpl1_2 sbpl1_3

and|or|eq|lt|le|gt|ge|ne|contains 将运算符去掉
sum|abs|round 将这几个函数也去掉

不能能否用正则表达式实现,谢谢!希望程序能通用!



二维码

扫码加我 拉你入群

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

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

全部回复
2014-12-8 12:37:03
%macro getvarlst(n=);
%do i=1 %to &n;
data test&i;
        if &&expression&i;
run;
%global vlist;
proc sql;
create table express&i as
select distinct name as express&i
from dictionary.columns
where memname=upcase("test&i");
quit;
%end;
proc datasets;
   delete %do i=1 %to &n; test&i %end;;
run;
%mend;

%getvarlst(n=4);
二维码

扫码加我 拉你入群

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

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

2014-12-8 12:50:56
jl60156 发表于 2014-12-8 12:37
%macro getvarlst(n=);
%do i=1 %to &n;
data test&i;
运行出错!
二维码

扫码加我 拉你入群

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

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

2014-12-9 08:16:33
继续求助!
二维码

扫码加我 拉你入群

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

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

2014-12-9 11:52:07
用compress也许可以,但是够呛了,不是很好弄。不知道有没有更牛逼的工具
二维码

扫码加我 拉你入群

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

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

2014-12-9 13:49:11
sas9.4 发表于 2014-12-9 11:52
用compress也许可以,但是够呛了,不是很好弄。不知道有没有更牛逼的工具
试试:
复制代码
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群