在宏中调用宏函数的正确语法
Correct syntax for invoking a macro function within a macro
假设我编写了一个 SAS 宏,在该宏中,我希望调用宏函数 TRIM。
我需要写:
%sysfunc(%trim(&text.))
或 %trim(&text.)
或者
%sysfunc(trim(&text.))
正确的语法是什么?
没有宏功能trim。因此,这取决于您是要调用 SAS 提供的自动调用宏 %TRIM()
还是要使用函数 TRIM()
。如果是后者,则需要使用 %SYSFUNC(TRIM())
.
将其嵌套在宏函数 %SYSFUNC()
中
关于SYSFUNC与否的基本规则:
如果你是 运行 来自 this page, the Dictionary of SAS Functions and Call Routines 的函数,那么你使用 SYSFUNC
。
如果它在 this page 或相关页面上("Autocall Macros" 在这里是相关的),那么您使用 %
而不要使用 SYSFUNC
.
在某些情况下,%trim
就是其中之一,您可以 两者都做 - 或多或少会得到相同的结果(方法可能略有不同SYSFUNC 和自动调用宏起作用,特别是与宏引用有关)。
假设我编写了一个 SAS 宏,在该宏中,我希望调用宏函数 TRIM。 我需要写:
%sysfunc(%trim(&text.))
或 %trim(&text.)
或者 %sysfunc(trim(&text.))
正确的语法是什么?
没有宏功能trim。因此,这取决于您是要调用 SAS 提供的自动调用宏 %TRIM()
还是要使用函数 TRIM()
。如果是后者,则需要使用 %SYSFUNC(TRIM())
.
%SYSFUNC()
中
关于SYSFUNC与否的基本规则:
如果你是 运行 来自 this page, the Dictionary of SAS Functions and Call Routines 的函数,那么你使用 SYSFUNC
。
如果它在 this page 或相关页面上("Autocall Macros" 在这里是相关的),那么您使用 %
而不要使用 SYSFUNC
.
在某些情况下,%trim
就是其中之一,您可以 两者都做 - 或多或少会得到相同的结果(方法可能略有不同SYSFUNC 和自动调用宏起作用,特别是与宏引用有关)。