当前位置: 首页 > news >正文

网站维护推广360网站托管

网站维护推广,360网站托管,大庆市住房与城乡建设局网站,背景图在线制作《SAS编程与数据挖掘商业案例》学习笔记#xff0c;本次重点#xff1a;sas宏变量 内容包括#xff1a;宏变量、宏函数、宏参数、通配函数、字符函数、计算函数、引用函数、宏语句、宏应用 1.宏触发器#xff1a; %name-token:是一个宏语句或宏函数 name-token:是一个… 《SAS编程与数据挖掘商业案例》学习笔记本次重点sas宏变量 内容包括宏变量、宏函数、宏参数、通配函数、字符函数、计算函数、引用函数、宏语句、宏应用 1.宏触发器 %name-token:是一个宏语句或宏函数 name-token:是一个宏变量引用 宏变量不依赖于sas数据集可以在任何一个除数据行以外的地方定义和引用宏变量一般定义的宏变量为局部变量除非使用%global定义宏变量用%let显示宏变量用%put调用宏变量用。 eg %let axxx; %put a; %put here is a; Eg:带引号的文本中引用宏变量 %let varddd; Data a; Xhere is var.; run; 如果要正确引用宏变量var值必须用双引号而不是单引号括住该文本因为宏处理器只能在双引号中进行替换。 proc sql; create table temp as select * from sashelp.class where sex like %M% ; quit; eg间接引用宏变量 %let mvarhere; %let x10; %put mvar.x ; 当程序读到第一个时立刻启动宏触发器由于存在句点号故宏处理器会接受两个宏变量mvar和x 2.宏函数 libname test f:\data_model\book_data\chapt10; options mstored sasmstoretest; %macro test / store ;   *是定义宏的关键字 data a; x1; run; %mend test;  是宏定义结束的标识 宏存储会将宏生成到相应目录下面的sasmar文件里面 调用永久存储的宏 libname test f:\data_model\book_data\chapt10; options mstored sasmstoretest; %test; 3.宏参数 宏功能强大之处在于宏参数定义宏参数有两种方法 按值创建宏参数 %macro value(x,y); data test; xx.; yy.; run; %mend value; 调用 %value(x10,y20); 按地址创建宏参数 %macro addr(x,y); data test; xx.; yy.; run; %mend addr; 调用 dr(10,20); 4.通配函数 是指能够在sas宏中引用data步的函数最常用的通配函数是%sysfunc Eg; %num10; %let x%sysfunc(trim(%sysfunc(left(num)))); %put x; Eg:translate函数应用 %let string1 v01n01-v01n10; %let string1 %sysfunc(translate(string1,p, n)); %put with n translated to p, v01n01-v01n10 is string1; eg判断数据集是否存在 %let dsn%sysfunc(exist(sashelp.class)); %put dsn; 5.计算函数 宏计算函数有两个 %EVAL:计算算术和逻辑表达式整数格式 %SYSEVALF:计算算术和逻辑表达式浮点格式 Eg: %let a1 2; %let b10*3; %let c5/3; %let eval_a%eval_r(a); %let eval_b%eval_r(b); %let eval_c%eval_r(c); %put a is eval_a; %put b is eval_b; %put c is eval_c; Eg:函数累加器 %macro test(finish); %let i1; %do %while (ifinish); %put the value of i is i; %let i%eval_r(i 1); %end; %mend test; %test(5) eg %sysevalf(1/3,boolean)      %sysevalf(10 .,boolean)     %sysevalf(1 1.1,ceil)       %sysevalf(-1 -2.4,ceil)       %sysevalf(-1 1.e-11,ceil)   %sysevalf(10 .)           %sysevalf(-2.4,floor)          %sysevalf(3,floor)            %sysevalf(1.-1.e-13,floor)     %sysevalf(.,floor)           %put %sysevalf(2.1,integer);        %put %sysevalf(-2.4,integer);       %put %sysevalf(3,integer);          %put %sysevalf(-1.6,integer);       %put %sysevalf(1.-1.e-13,integer);  6.字符函数 %index 返回一个字符串第一次出现的位置 %length 返回自变量长度 %QSCAN 扫描单词并引用包括%和的结果 %QSUBSTR 提取包括%和的子串并引用包括%和的结果 %QUPCASE 转换包括%和的小写字符为大写 %SCAN 扫描单词并返回一个结束引用的结果 %substr 提取子串并返回一个结束引用的结果 %upcase 转换小写字符为大写字符并返回一个结果引用的结果 Eg: %macro a; aaaaaa %mend a; %macro b; bbbbbb %mend b; %macro c; cccccc %mend c; %let x%nrstr(%a*%b*%%c); %put X: x; %put The third word in X, with SCAN: %scan(x,3,*); %put The third word in X, with QSCAN: %qscan(x,3,*); 7.引用函数 %nrstr 引用固定文本包括和% %str 引用固定文本不包括和% %quote 引用一个可分辨的值不包括%和 %nrbquote 引用一个可分辨的值包括未处理的特殊符号和%sas操作符 %nrquote 引用一个可分辨的值包括未处理的特殊字符 eg %macro x; xxxxx; %mend x; %put : The result of str is :%str(%x); %put: The result of nrstr is :%nrstr(%x); eg %macro dept2(state); %if %quote(state)nc %then %put north carolina department of revenue; %else %if %quote(state)%str(or) %then %put department of revenue; %else %put others; %mend dept2; pt2(or) 调用pt2(or)后参数state获得值or由于在sas系统里面or是一个逻辑操作符所以为了得到纯文本含义的or只能用%quote 8.宏语句 eg %macro obs(parm); %let parm1 %upcase(parm); %if parm1 PRE %then %do; data pre_obs; set sashelp.class(obs5); if sexM then y1; else y2; run; %end; %else %if parm1 POST %then %do; data post_obs; set sashelp.class(firstobs6); if sexM then y1; else y2; run; %end; %mend obs; %obs(pre); eg %macro dow(); %let i1; %do %while (i5) ; %let i%eval_r(i. 1);  %put i.; %end; %mend dow; %dow; eg搜寻子字符串并输出 %macro dw(word); %let i1; data out; %do %while (%left(%scan(word.,i.)) ne %nrbquote(stop)); %let var%scan(word.,i.); %put var.; outvar; output; %let i%eval_r(i. 1); %put i.; %end; run; %mend dw; %dw(%str(test1,test2,test3)); 9.宏应用 eg通过sql过程创建多个宏变量 proc sql noprint; select nvar,nobs into:nvar , :nobs from dictionary.tables where libname SASHELP and memname CLASS; quit; %put nvar.; %put nobs.; eg通过sql过程用变量名创建宏变量列表 proc sql noprint; select name into :clist1-:clist999 from dictionary.columns where libname SASHELP and memname CLASS; quit; %put clist1.; %put clist2.; eg通过data步接口子程序call symputx data _null_; set sashelp.class nobsobs; call symputx(m1,obs); call symput(m2,obs); Stop; run; %put m1.; %put m2.; 注symputx能消除后面参数的左右空格而symput只能消除右空格。 eg重命名指定目录下的sas数据集名称 libname chap10 f:\data_model\book_data\chapt10; %let rptrpt_temp; proc sql; create table chap10.change_tb_name as select memname from dictionary.tables where libname eq CHAP10; quit;                                                 *上面主要是产生指定目录下所有sas数据集名称 %macro change(); %let dsid%sysfunc(open(chap10.change_tb_name));                  1)打开数据集每行运行一次open并返回id给宏变量dsid %if dsid gt 0 %then %do;                                                                   2)对返回的id号判断若成功打开数据集则id肯定非0则执行do语句 %let nobs%sysfunc(attrn(dsid,nobs));                                          3)抓取数据集的观测数返回一个数值 %do i1 %to nobs;                                                                              4)执行5次循环 %let rc%sysfunc(fetchobs(dsid,i));                                   5)抓取对于的观测 %let varnume%sysfunc(varnum(dsid,memname));         6)找到memname所在的列位置 %let table%sysfunc(getvarc(dsid,varnume));                 7)抓取memname对应位置的值 proc datasets libchap10;                                                       8)利用每个返回的值执行datasets过程步改变相应数据集的名称 change tablerpt._ti.; quit; %end;                                                                                                     9)结束%do语句 %let dsid%sysfunc(close(dsid));                                                 10)关闭数据集 %end;                                                                                                         11) %mend change; %change;
http://www.zqtcl.cn/news/197382/

相关文章:

  • 商城网站备案要求wordpress插件 手机版
  • 北京市网站备案查询石家庄建设信息网必须交费吗
  • 北京优化网站方法四川省建设局网站
  • 怎么做网站能快速赚钱重庆快速建站
  • 河南专业网站建设公司首选培训心得简短200字
  • 销售网站开发业务高端建网站多少钱
  • 几个做ppt的网站知乎青岛高品质网站制作
  • 网站seo插件wordpress模板中文版
  • 夹江移动网站建设手机网站微信登陆
  • 浏阳做网站网易企业邮箱注册官网
  • 东莞网站建设是什么意思自己怎么做企业网站建设
  • 免费的网站申请泰州网站整站优化
  • 毕业设计做企业门户网站过期域名网站
  • 网站建设和风险分析简单网页制作代码模板
  • 照片展示网站那个网站可以做攻略
  • 优秀网站设计赏析万网网站备案多久
  • 网站维护服务有哪些电商网站
  • 部门网站建设总结鼎城网站建设
  • 制作网站的模板下载大型商城购物平台开发
  • wordpress 分类文章置顶整站优化推广品牌
  • 网站手机验证码如何做官方网站在家做兼职
  • 东莞三合一网站制作网站建设 千助
  • 114网站做推广怎么样江苏建设培训网站
  • 如何让网站做网页适配网站上的产品五星怎样做优化
  • 怎么做网站排名优化免费jq网站模板
  • 源码时代培训机构官网自己建网站怎么做seo
  • 宜都网站制作济南比较大的网站制作公司
  • 怎么用电脑做网站主机假网站怎么制作
  • 网站 微信网络营销方案设计心得
  • 淘宝客 wordpress网站wordpress类似的工具