Sas 当观察值较大时,为字符值创建格式

Sas 当观察值较大时,为字符值创建格式,sas,proc,Sas,Proc,我查看了这个主题的答案,这些答案只有很少的字符值可以格式化为数值。我有200多个字符值要使用其不同的id进行格式化。另一个sas数据集中存在具有其字符名称的不同id。 那么,除了编写以下代码之外,还有其他方法吗 value $county ' Carroll County'= 034 ' Chatham County'= 011 ' Fulton County'= 213 ' De

我查看了这个主题的答案,这些答案只有很少的字符值可以格式化为数值。我有200多个字符值要使用其不同的id进行格式化。另一个sas数据集中存在具有其字符名称的不同id。 那么,除了编写以下代码之外,还有其他方法吗

value  $county ' Carroll County'= 034
                   ' Chatham County'= 011
                   ' Fulton County'= 213
                   ' DeKalb County'= 002
.
.
.
                   ' Chattahoochee County'=510;                   ;
   run;

我使用的是sas 9.3

使用的是Frazz推荐的方法,您可以得到如下结果:

data mapping;
    set have1;
    fmtname = '$county';
    start = county_name;
    label = county_number;
    keep fmtname start label;
run;

proc format cntlin=mapping;
run;
然后,您可以使用以下方式应用格式:

number = put(name, $county3.);

请记住,您需要“start”、“label”和“fmtname”变量才能使其工作。另外,请确保您首先没有重复的县名称,以便一个县名称仅映射到一个标签。

使用Frazz推荐的方法,您将得到如下结果:

data mapping;
    set have1;
    fmtname = '$county';
    start = county_name;
    label = county_number;
    keep fmtname start label;
run;

proc format cntlin=mapping;
run;
然后,您可以使用以下方式应用格式:

number = put(name, $county3.);

请记住,您需要“start”、“label”和“fmtname”变量才能使其工作。另外,请确保您首先没有重复的县名称,以便一个县名称仅映射到一个标签。

使用Frazz推荐的方法,您将得到如下结果:

data mapping;
    set have1;
    fmtname = '$county';
    start = county_name;
    label = county_number;
    keep fmtname start label;
run;

proc format cntlin=mapping;
run;
然后,您可以使用以下方式应用格式:

number = put(name, $county3.);

请记住,您需要“start”、“label”和“fmtname”变量才能使其工作。另外,请确保您首先没有重复的县名称,以便一个县名称仅映射到一个标签。

使用Frazz推荐的方法,您将得到如下结果:

data mapping;
    set have1;
    fmtname = '$county';
    start = county_name;
    label = county_number;
    keep fmtname start label;
run;

proc format cntlin=mapping;
run;
然后,您可以使用以下方式应用格式:

number = put(name, $county3.);

请记住,您需要“start”、“label”和“fmtname”变量才能使其工作。另外,请确保您首先没有重复的县名,以便一个县名只映射到一个标签。

我经常这样做,但我目前没有可用的SAS计算机,因此我不会发布无法验证的答案。您可以通过使用带有CNTLIN=选项的PROC格式,直接从数据集创建格式。实际上,我通常从原始数据集派生一个临时数据集,因为PROC格式希望在某些变量中找到构建格式所需的信息,这些变量与我使用的原始数据集不匹配。您可以在这里找到一些文档:我经常这样做,但我目前没有可用的SAS计算机,因此我不会发布无法验证的答案。您可以通过使用带有CNTLIN=选项的PROC格式,直接从数据集创建格式。实际上,我通常从原始数据集派生一个临时数据集,因为PROC格式希望在某些变量中找到构建格式所需的信息,这些变量与我使用的原始数据集不匹配。您可以在这里找到一些文档:我经常这样做,但我目前没有可用的SAS计算机,因此我不会发布无法验证的答案。您可以通过使用带有CNTLIN=选项的PROC格式,直接从数据集创建格式。实际上,我通常从原始数据集派生一个临时数据集,因为PROC格式希望在某些变量中找到构建格式所需的信息,这些变量与我使用的原始数据集不匹配。您可以在这里找到一些文档:我经常这样做,但我目前没有可用的SAS计算机,因此我不会发布无法验证的答案。您可以通过使用带有CNTLIN=选项的PROC格式,直接从数据集创建格式。实际上,我通常从原始数据集派生一个临时数据集,因为PROC格式希望在某些变量中找到构建格式所需的信息,这些变量与我使用的原始数据集不匹配。您可以在此处找到一些文档: