[SAS Formats]错误:对于格式国家/地区,此范围重复,或值重叠:-

[SAS Formats]错误:对于格式国家/地区,此范围重复,或值重叠:-,sas,Sas,我只是尝试在SAS studio上定义一种新格式。以下是我的代码,错误消息如标题所示。有人能帮忙吗?非常感谢 data countries; input Start $ Label $; retain FmtName 'countries'; datalines; 'AU' 'Austr' 'CH' 'China' ; proc format library=orion.MyMacFmts1 fmtlib cntlin=countries; se

我只是尝试在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;

您的代码中有两个不同的问题:

  • 数据值中有引号
  • SAS正在尝试构建数字格式,而不是字符格式
  • datalines部分中的引号正在成为变量值的一部分,这可能是您不希望看到的。您应该删除它们,即:

    data countries;
        input Start $  Label $;
        retain FmtName '$countries';  *<-- added $ sign! 
        datalines;
    AU Austr
    CH China
    ;
    
    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
    

    @昆汀:是的,当我打印出来时它是正确的。@Quentin“select”命令做什么?@Quentin我以为proc步骤将新格式添加到了库中?我在日志和输出中没有看到任何异常。如果仍然有问题,请发布日志。
    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