2

我正在修改 SAS 宏中的数据步骤。目前使用单一格式为整个数据集创建新字段。我正在尝试将其修改为将在数据集的不同子集上使用不同格式的位置。(我有一个字段指示该行属于哪个子集。)

我可以用一堆 if 语句来做到这一点,但是如果将来类别的数量发生变化,那将需要更改。我想我可以通过使用 call symput 和 resolve 来实现我想要的,但我不确定它的语法是什么。我可以在不使用 if 语句的情况下实现这一点吗?

4

1 回答 1

2

你的问题不是很清楚,但如果你想做类似的事情

newvar = put(oldvar,MYFMT.)

->

if x=1 then newvar=put(oldvar,MYFMT.);
else newvar=put(oldvar,MYFMT2.);

但如果没有所有 if 语句,您可以使用PUTNor PUTC,它允许您在运行时指定格式。

newvar = putn(oldvar,fmtvar); *optionally can specify w and d as separate arguments also;
于 2013-12-11T16:33:03.213 回答