首页 > 其他分享 >SAS - Macro(二)常用宏函数

SAS - Macro(二)常用宏函数

时间:2022-10-05 16:12:20浏览次数:92  
标签:函数 SYSFUNC Macro QSYSFUNC let str SAS

1. %str  和 %nrstr

%str(character-string)  
%nrstr(character-string) 

这两个函数属于 Macro quoting function, 作用是:在宏编译时,当存在特殊字符影响到宏编译的结果时,将其放入这两个函数中就可以掩盖这些字符。可以掩盖的字符有:

除此之外,%NRSTR 还可以掩盖 & 和 % . 注意:如果是不成对的引号或括号,在%STR 或 %NRSTR 中使用时,必须在其前面添加符号%。

例子:

%let a=%str(this is test);
%let b=%str(  this is test);
%let c=%str('this is test');
%let d=%str(proc print;run;);

Reference :  Macro Quoting: %STR and %NRSTR Functions (sas.com)

2. %sysfunc

%SYSFUNC (function(argument(s))<, format> )
%QSYSFUNC (function(argument(s))<, format> )

作用是:在宏语句里执行函数。

例子:

 /*普通函数需要引号的,放进sysfunc后无需添加引号*/
 dsid=open("sasuser.houses","i");
 dsid=open("&mydata","&mode");

 %let dsid = %sysfunc(open(sasuser.houses,i));
 %let dsid=%sysfunc(open(&mydata,&mode));

%SYSFUNC 无法掩盖特殊符号,%QSYSFUNC 可以掩盖下列特殊符号:

当%SYSFUNC或%QSYSFUNC引用的函数需要数值型参数时,参数会被自动转化成数值型。还有一些无法被%SYSFUNC或%QSYSFUNC使用的SAS函数:

Instead of INPUT and PUT, which are not available with %SYSFUNC and %QSYSFUNC, use INPUTN, INPUTC, PUTN, and PUTC.

CAUTION: Values returned by SAS functions might be truncated. Although values returned by macro functions are not limited to the length imposed by the DATA step, values returned by SAS functions do have that limitation.   Reference : %SYSFUNC and %QSYSFUNC Functions :: SAS(R) 9.3 Macro Language: Reference

3. %scan 和 %qscan

4. %sysevalf 和 %eval 

标签:函数,SYSFUNC,Macro,QSYSFUNC,let,str,SAS
From: https://www.cnblogs.com/zooz-logging/p/16755717.html

相关文章

  • (函数)编程:定义一个函数fun(a,b,c),返回一元二次方程ax^2+bx+c=0的两个解。程序运行后输
    样例输入231 样例输出(-0.5,-1.0) 样例输入246 样例输出输入错误,无解 解题代码importmathdeffun(a,b,c):dt=b*b-4*a*cx1=(-b......
  • python 函数定义
    1.函数的定义#def就是definedef函数名(传入参数):函数体return返回值#参数,返回值都可以省2.函数调用函数名(参数)3.函数的传入参数不像其他语言......
  • 类型转换及相关函数
    4.11类型转换及相关函数在Python中,不同的数据类型是可以相互转换的,下面列举一些之前没有介绍但是比较常见的数据类型转换及相关函数,以供参考。4.11.1进制转换类4.11.1......
  • VS2005导出函数命名规则
    操作系统:Win7总结的规律:第一个@前面是函数名,第一个@到第二第三个@是类名,第三个@到第四个@是返回值参数的类型1,如果有参数(不包括void),以@Z结尾,否则以XZ结尾2,VS2005都是......
  • 绝对值函数
    如何使用绝对值函数fabs()功能:求浮点数的绝对值函数原型:doublefabs(doublex);函数功能:函数fabs的作用是求浮点数x的绝对值。函数参数:参数x是一个浮点数。说明:函数fabs()的......
  • 【笨方法学python】ex18 - 命名、变量、代码、函数
    代码如下:点击查看代码#-*-coding:utf-8--*-#命名、变量、代码、函数#thisoneislikeyourscriptswithargvdefprint_two(*args): arg1,arg2=args pri......
  • Linux/Cygwin助手函数:findremoteip,根据网络连接信息过滤查找特定远程IP,查询和终止Wind
    本函数Cygwin下测试通过,MSYS2,WSL1理论上可用(另:WSL2自然是不行),未经过测试!findremoteip函数代码:findremoteip(){ #根据网络连接的远程主机IP查找Windows相关进程: #目......
  • 关于虚函数和纯虚函数
    首先区别一些概念:a.定义一个函数为虚函数,不代表函数为不被实现的函数b.定义某个函数为虚函数,是为了允许用基类的指针来调用子类的这个函数c.定义一个函数为纯虚函数......
  • 原始递归函数及模拟运行的优化
    看到网上一个题目,证明x开y次方是原始递归函数(primitiverecursivefunction)。这个问题并不难,只要把x开y次方实现出来即可。于是,正好把《递归论》相关内容补一补。【......
  • XX学Python·函数
    函数的定义和调用'''#函数定义的格式def函数名(参数1,参数2...):函数体return返回值#函数调用格式函数名(参数1,参数2...)#函数名:绝大多数函数都有函......