Types SAS无法加载Proc格式
我正在尝试创建一种proc格式,它读取邮政编码,并相应地将标签应用于其状态 出于某种原因,尽管我的“开始”和“结束”字段都是数字,但它始终返回一个错误,表示: “未找到或无法加载ZONENEW格式。” 我发现唯一的解决办法是将Pcode数据更改为文本,并将开始和结束格式字段更改为文本 这是我现有的代码,仍然是数字格式Types SAS无法加载Proc格式,types,format,sas,proc,proc-format,Types,Format,Sas,Proc,Proc Format,我正在尝试创建一种proc格式,它读取邮政编码,并相应地将标签应用于其状态 出于某种原因,尽管我的“开始”和“结束”字段都是数字,但它始终返回一个错误,表示: “未找到或无法加载ZONENEW格式。” 我发现唯一的解决办法是将Pcode数据更改为文本,并将开始和结束格式字段更改为文本 这是我现有的代码,仍然是数字格式 data Fmt_All_zones; set all_zones end=eof; retain type 'c'; fmtname = 'zonenew';
data Fmt_All_zones;
set all_zones end=eof;
retain type 'c';
fmtname = 'zonenew';
start = pcode_fr;
end = pcode_to;
label = key;
output;
if eof then do;
start = 'other';
end = 'other';
label = "Error";
output;
end;
run;
proc format cntlin = fmt_all_zones library = work;
run;
data TestPostcodes;
input Pcode;
datalines;
2050
2065
3000
2879
9999
1999
6488
;
run;
data FilteredPcode;
set TestPostcodes;
Pcode_Label = put(Pcode, zonenew.);
run;
如果能给我一个解释,以帮助我从概念上理解这个过程,我将不胜感激!谢谢。您通过设置
TYPE='C'
定义了字符格式。如果您想要数字格式,请使用TYPE='N'
您的邮政编码是数字,因此您需要的是数字类型,而不是字符。这很好!我如何定义我的邮政编码的“其他”范围?因为如果邮政编码是数字的,它将不接受文本定义如果eof块中的代码>。进一步阅读:如果指定了类型
变量,那么开始
变量是字符还是数字并不重要。@Wolfspirit最好单独提问。