【发布时间】:2018-04-19 17:21:06
【问题描述】:
设示例宏变量为
%let temp="A","B","C";
如何获得这个宏变量的数组长度,包括引号和逗号?例如,我想返回长度 3。
%let length_of_temp=%sysfunc(SOME_FUNC(&temp.));
%put length=length_of_temp;
LOG: length=3
最好我想使用一个已建立的 SAS 函数或代码行来完成,而不是创建一个新的处理函数。到目前为止,这是我尝试过的:
-
countw("&temp.",","):引号在尝试将其转换为字符串时会产生错误。
注意:由宏变量“TEMP”生成的行。 4
""A","B","C"注意 49-169:带引号的字符串后面的标识符的含义在未来的 SAS 中可能会改变 释放。在带引号的字符串和后面的字符串之间插入空格 推荐使用标识符。
错误 388-185:需要算术运算符。
-
countw(&temp.,",")和count(&temp.):函数调用的典型错误是参数太多 -
count((&temp.))和dim((&temp.)) - 上面使用
%superq的变体
【问题讨论】:
-
您是要计算 &temp 中的字符数(示例中为 11)还是引用字符串的数量(示例中为 3)?
-
引用字符串的数量 - 编辑澄清