我正在修改驻留在SAS宏中的数据步骤。目前,单个格式用于为整个数据集创建新字段。我正在尝试将其修改为将在数据集的不同子集上使用不同格式的位置。 (我有一个字段,指示该行属于哪个子集。)
我可以使用一堆if语句执行此操作,但如果将来更改类别数,则需要更改。我想我可以通过使用call symput和resolve来实现我想要的,但我不确定它的语法是什么。我可以在不诉诸if语句的情况下实现这一目标吗?
答案 0 :(得分:2)
你的问题不是很清楚,但是如果你想做一些像
这样的事情newvar = put(oldvar,MYFMT.)
- >
if x=1 then newvar=put(oldvar,MYFMT.);
else newvar=put(oldvar,MYFMT2.);
但如果没有所有if语句,您可以使用PUTN
或PUTC
,这允许您在运行时指定格式。
newvar = putn(oldvar,fmtvar); *optionally can specify w and d as separate arguments also;