我正在SAS中创建一个xml文件,并希望使用宏变量替换put语句中的EveningTelePhoneNum,但似乎不喜欢它。查看示例代码:
0
答案 0 :(得分:2)
如果您想这样做:
%let fieldname=EveningTelephoneNum ;
put ' <Contact>';
if (pi ne "") then put ' <PersonalId>' pi +(-1) '</PersonalId>';
if (&fieldname ne "") then put ' <&fieldname>' '. ' +(-1) '</&fieldname>';
put ' </Contact>';
那是行不通的,因为宏变量不会在单引号内解析。您可以尝试(未试用):
%let fieldname=EveningTelephoneNum ;
put ' <Contact>';
if (pi ne "") then put ' <PersonalId>' pi +(-1) '</PersonalId>';
if (&fieldname ne "") then put " <&fieldname>" '. ' +(-1) "</&fieldname>";
put ' </Contact>';
但是我可能会误解您的问题。与使用PUT语句手动写入相比,创建XML文件的方法可能更简单。
答案 1 :(得分:1)
使用XML
库引擎可以可靠而轻松地导出平面数据结构。
例如:
libname myxml XML "C:\Temp\sandbox.xml";
%let moneyvar = invoice;
data myxml.acura;
set sashelp.cars;
where make = "Acura";
keep model &moneyvar;
run;
我使用了一个宏变量moneyvar
(尽管完全没有必要)来模拟您问题中的EveningTelePhoneNum
想法。