我只是尝试在SAS studio上定义一种新格式。以下是我的代码,错误消息与标题中的相同。有人可以帮忙吗?非常感谢!
data countries;
input Start $ Label $;
retain FmtName 'countries';
datalines;
'AU' 'Austr'
'CH' 'China'
;
proc format library=orion.MyMacFmts1 fmtlib cntlin=countries;
select $countries;
run;
答案 0 :(得分:0)
您的代码中存在两个不同的问题:
您的数据线部分中的引号正在成为变量值的一部分,您可能并不打算这样做。你应该删除它们,即:
data countries;
input Start $ Label $;
retain FmtName '$countries'; *<-- added $ sign!
datalines;
AU Austr
CH China
;
如上所述,您的PROC FORMAT语句正在创建数字格式,国家/地区。 SAS尝试将字符值转换为数字,并获得空值(重复,因此错误消息)。要告诉SAS您需要字符格式,请在名称中添加$前缀($实际上是格式名称的一部分)。您还可以将TYPE变量添加到数据集中。
然后您的代码可以运行:
proc format library=work.formats fmtlib cntlin=countries;
select $countries;
run;
fmtlib选项和select语句只是告诉SAS打印格式(有时候有助于调试)。它们是可选的,所以这将起作用:
proc format library=work.formats cntlin=countries;
run;
测试如下:
307 data _null_;
308 length Country $8;
309 do country="AU","CH","USA";
310 put country country $countries.;
311 end;
312 run;
AU Austr
CH China
USA USA