我想知道在SAS
宏中哪些字符可以安全使用。
所以我的意思是这里的特殊字符是任何在任何上下文中都可以在SAS
中具有特定角色的角色(或一组角色)。我对关键字(由a-z
1-9
字符组成)不感兴趣。
例如=
^=
;
%
,
@
是特殊的(不确定@
是否实际用于SAS
,但它已用于doc,因此仍被视为对所有用途都安全的参数' )。
但$
!
~
§
{
}
°
等等呢?
这应包括PROC SQL
中特殊的字符。
我想在我的代码中使用其中一些字符并赋予它们特殊含义,但我不要与任何现有用法冲突(我对{{1特别感兴趣) }})。
答案 0 :(得分:3)
一般性参考:
我认为标准英语键盘上的绝大多数字符都是在SAS语言的某处或其他地方使用。
解决您的示例:
$
用于格式名称,put / input语句,正则表达式定义...... !
'或某些环境中的“运营商”~
'不是'运营商§
据我所知不使用{}
可用于数据步骤数组引用&定义°
据我所知不使用以上所有人都没有在宏观背景下做任何特别的事情,因为汤姆已经在答案中明确表示了这一点。
答案 1 :(得分:2)
也许SAS Operators in Expressions可以帮助你〜,
看着桌子
比较运算符和
逻辑运算符
答案 2 :(得分:1)
宏代码中的主要触发器是&
和%
,它们用于触发宏变量引用和宏语句,函数或宏调用。
;
(分号)用于宏代码(如SAS代码中)以表示语句的结束。
要将参数传递给宏参数,您首先需要担心,
(逗号)。但您也希望避免不平衡()
。在按位置传递参数值时,应避免使用=
。
您可以通过在值周围添加引号或额外()
来保护它们。但这些角色成为传递价值的一部分。您可以使用宏引用来保护它们。
%mymac(parm1='1,200',parm2=(1,200),parm3=%str(1,200),parm4="a(b")
只要您的呼叫使用命名参数,就可以在不引用的情况下包含等号。
%mymac(parm1=a=b)
答案 3 :(得分:0)