SAS 宏

sas宏语言详细教程
所有的变量值都只能是字符

data sales2001;
set sashelp.orsales;
if year=2001;
run;
proc  print data=sales2001;
title 'sales in 2001';
footnote1 'create-2017';/*脚注,标题,对表进行修改编辑,可以直接写footnote,如果有多个脚注,可以加1,加2*/
footnote2 'on then win system using sas 9.4';
run;

在这里插入图片描述
在这里插入图片描述

/*使用宏语言改写*/
%let year=2001;
/*定义了宏变量YEAR,并且赋值2001,
在后面使用&year来代替2001*/
data sales&year;
set sashelp.orsales;
if year=&year;
run;
proc  print data=sales&year;
title 'sales in &year';/*这里有问题*/
footnote1 'create-2017';/*脚注,标题,对表进行修改编辑,可以直接写footnote,如果有多个脚注,可以加1,加2*/
footnote2 'on then win system using sas 9.4';
run;

在这里插入图片描述

在这里插入图片描述

%let town=detroit;
data city;
input city $ state $;
cards;
detroit  mi
chicago il
;
run;
data city2;
set work.city;
where city='detroit';
run;
%let town=detroit;
data city;
input city $ state $;
cards;
detroit  mi
chicago il
;
run;
data city2;
set work.city;
where city="&town";/*detroit是city这个列的一个值,所以要用字符串,因此如果要用宏变量,
也要加引号,需要加双引号,单引号不对,后面写了单引号内的宏变量不会被解析,双引号内的宏变量才会被解析*/
run;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入代码片

在这里插入图片描述
在这里插入图片描述

%let x=100;
%let y=%eval(&x+20);整型函数
%put y=&y;
%put z=%eval(&x+&y);

在这里插入图片描述

在这里插入图片描述

返回位置,从1开始,如果有多个重复的,则返回第一个
%let city=shanghai;
%let loc=%index(&city,g);
%put weizhi=&loc;
%put weizhi2=%index(&city,a);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
宏过程
在这里插入图片描述
在这里插入图片描述

宏过程的定义
%macro print;
proc print data=sashelp.class;
run;
%mend print;
/*宏过程的调用,%宏名称*/
%print;

在这里插入图片描述

%macro add_xy(x,y);
%let sum_xy=%eval(&x+&y);/*这里不能直接x+y,会报错
%put &sum_xy;
%mend add_xy;
%add_xy(5,12);

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据分析,数据科学及AI算法是当前最热门的职业。这些职业有着共同的特点:面向数字的,针对编程的以及采取分析手段的。 这些当代热点特性使得在就业市场上对以上职位需求激增也就不足为奇了。但是,市场上提供这方面的大型综合的培训课程是有限,如果说有,大多是知识范围狭窄且非综合性的,而且大多培训都缺乏方法论与实务结合。一般的情况是讲师讲述某种语言的一堆代码,学生听完后甚至连使用方法及代码的前提都不清楚,更别提实际应用场景了。这里,掌握一门数据分析软件本身没错,但仅通过单一的编程培训很难获得聘用为数据分析师或数据科学家所需的技能。那我的解决方案是什么呢?首先,我把所有数据分析中的典型问题都归类总结出来,再结合相应的实际问题,数据以及案例,同时采用世界上最流行的两种数据分析软件:PYTHON 和 SAS去解决这些问题,并将这些解决方法传授给学生。学生在完成培训后更重要的收获是知道每一问题从产生直至解决的前因后果和应用场景,这是因为我在每一课程章节最前都会交代方法论,知识要点及应用场合。SAS和PYTHON可以一起学吗?当然可以。因为我就是这样做到的。具体步骤是,我在课程当中安排了一系列主题,然后使用两种编程语言解决同样的问题。我总结出这样做的好处是边学习边比较,最后在不知不觉当中掌握了两门语言的精华和数据分析的通用方法或模式。过程虽有点长,但十分有趣。最后,为了巩固已学的知识和技能,我还专门安排了针对PYTHON 和 SAS的中小型项目及详细代码讲解。另外,课程当中使用的全部编程代码及数据文件都将免费地提供给注册的学生。
05-26
SAS是一种用于自动化执行SAS代码的工具。它允许用户将一组SAS语句组合成一个单独的可重用代码块,并使用变量来自定义代码块中的参数。 SAS由两部分组成:定义和调用。在定义中,用户编写一组SAS语句,其中包含变量。在调用中,用户使用%名称来调用,并为变量提供值。当SAS遇到调用时,它会展开定义并替换变量的值,然后执行展开后的代码。 以下是一个简单的SAS示例,用于计算两个数字的和: ``` %macro add_numbers(num1=, num2=); %let sum = %eval(&num1 + &num2); %put The sum of &num1 and &num2 is ∑ %mend; %add_numbers(num1=5, num2=10); ``` 在上面的示例中,`%macro`定义了一个名为`add_numbers`的,该接受两个参数`num1`和`num2`。定义中的`%let`语句使用`%eval`函数计算这两个数字的和,并将结果存储在名为`sum`的变量中。最后,`%put`语句将计算的和输出到SAS日志中。 在调用中,我们使用`%add_numbers`调用,并为`num1`和`num2`提供值。当SAS遇到调用时,它会展开定义并替换变量的值,然后执行展开后的代码。在这种情况下,展开后的代码将计算5和10的和,并将结果输出到SAS日志中。 SAS是一种非常强大的工具,可以让SAS用户更高效地编写代码。它可以用于自动化常见的数据处理、分析、报告生成和其他任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值