众所周知,SAS需要特别注意句子中的引号。
E.g.
%let quoted="I'd like to";
data temp;
set temp;
quoted=""ed";
run;
提交时遇到错误。
事实上,我需要将数据从另一个数据集中复制到一个数据集中,其中有很多包含引号的记录。赋值时发生错误,数据步停止执行,导致其余代码无效。所以在这种情况下,不可能通过添加重复的引号来修改原始数据集,这是没有意义的。
因此,不必添加重复的错误,例如“我愿意”,是否有其他方法可以避免错误或使数据步骤继续执行?
Thanks,
使用宏语言(包括 %let 命令)时,您不希望使用引号来标识文本字符串。要在字符串中放置单引号,您必须使用宏实用程序屏蔽函数之一,例如 %str()。使用 %let 在宏变量中放置不匹配的单引号的正确语法如下所示。单引号之前的 % 符号是转义字符,用于告诉 SAS 接下来的字符(单引号)应用作文字。另请注意,我已从 %let 中删除了双引号,因为它们不是必需的。
%let quoted=%str(I%'d like to);
data temp;
quoted=""ed";
run;
干杯
抢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)