使用变量值作为格式名称

时间:2017-03-28 05:47:07

标签: sas

我已经定义了fmtAfmtB

fmtA

1→1

2→2

fmtB

1→2

2→4

输入数据:

x format y
1 fmtA   
1 fmtB
2 fmtA
3 fmtA

我尝试根据列x将列y格式化为format

有可能吗?

2 个答案:

答案 0 :(得分:2)

是的,您可以使用putn功能执行此操作,例如:

proc format;
value fmtA
1 = 1
2 = 2
;
value fmtB
1 = 2
2 = 4
;
run;

data have;
input x format $;
cards;
1 fmtA   
1 fmtB
2 fmtA
3 fmtA
;
run;

data want;
set have;
y = putn(x,format);
run;

答案 1 :(得分:2)

PUTN和PUTC功能允许您在DATA步运行时应用格式。尝试:

y=putn(x, cats(format,'.')) ;