我已经定义了fmtA
和fmtB
。
fmtA
1→1
2→2
fmtB
1→2
2→4
输入数据:
x format y
1 fmtA
1 fmtB
2 fmtA
3 fmtA
我尝试根据列x
将列y
格式化为format
。
有可能吗?
答案 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,'.')) ;