put函数 sas_SAS岩论 | Macro系列(9)——Macro Function

本文详细介绍了SAS Macro中的宏函数,包括与SAS函数相似的宏函数如%INDEX、%LENGTH等,数值计算的宏函数%EVAL和%SYSEVALF,以及检查宏变量状态、宏程序状态的函数。通过示例程序展示了各宏函数的使用方法,帮助读者掌握SAS Macro的高级应用。
摘要由CSDN通过智能技术生成

Macro系列导读

SAS Macro作为SAS高手不可或缺的一项技能,是因为它功能足够强大,能极大的提升程序开发效率;使你的时间和精力投入在更有价值的事情上。

Macro系列文章,将会逐一奉上SAS Macro的点点滴滴,带你踏上从认识Macro到熟练使用Macro之路。掌握SAS Macro,将会使你的SAS编程能力更上一层楼。

上期文章“Macro Statements(2)”对第二部分,既能在宏内部使用,又可以在宏外部使用的共16个语句进行了介绍说明,其中比较常用的主要就是有关宏变量的语句。

Macro系列(9)—Macro Function

本期文章将对宏语言中的宏函数进行介绍。其中有部分宏函数与SAS函数无论是名字、语法、功能基本都是一致的;其余函数为宏语言所特有的。接下来按照功能分七部分,分别进行介绍。

039097ba4dafb8561b089f044a1588f8.png

1. 类SAS函数的宏函数

该部分函数共5个,其无论是名字、语法、功能都与SAS函数类似,只是在函数名前多了一个“%”。这5个宏函数分别是:

  • %INDEX

  • %LENGTH

  • %SCAN

  • %SUBSTR

  • %UPCASE

这5个宏函数与其对应的SAS函数功能是一致的,区别就在于宏函数的参数一般都是宏变量,SAS函数的参数一般都是DATA步中的变量(当然,也可以使用宏变量)。

需要注意的一点是%INDEX,%SCAN这两个函数,其对应的SAS函数INDEX,SCAN;在INDEX查找指定的文本串,及SCAN中指定分隔符时,需要用引号将其内容引起来;而%INDEX,%SCAN则不需要引号。因为在宏语言中所有的东西都是文本,因此不需要用引号特别指定是文本。

 

示例程序一:

data_null_;

     str="this is a string.";

     a=index(str, "is");

     b=length(str);

     c=scan(str, 1, "is");

     d=substr(str, 14);

     e=upcase(str);

     put a= / b= / c= / d= / e=;

run;

日志结果:

3587771bef4339a5e924c5506caca03b.png

 

示例程序二:

%let str=this is a string.;

%let a=%index(&str, is);

%let b=%length(&str);

%let c=%scan(&str, 1, is);

%let d=%substr(&str, 1, 4);

%let e=%upcase(&str);

%put a=&a;

%put b=&b;

%put c=&c;

%put d=&d;

%put e=&e;

日志文件:

a0093014e7971a1eedc692567aa75058.png

 

示例程序三:

%let str=this is a string.;

%l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值