SAS - PROC FREQ的第一个字母

时间:2015-09-16 02:40:07

标签: sas frequency

PROC FREQ是否有办法收集名字第一个字母的频率?例如,我在变量Name下有一个包含50个名称的列表。我想用名字的第一个字母取名字的频率。我做了这个创建一个新的变量,它采用原始名称变量的子串,并且它工作正常。但我想知道PROC FREQ中是否有一种方法可以在不创建新变量的情况下完成这项工作?这是我用过的代码:

DATA FirstNames;
   INFILE "(insert file)" firstobs=2;
   INPUT Name $ @@;
   Letter=substr(Name,1,1);
RUN;

proc freq data = FirstNames;
    Tables Letter;
run;

2 个答案:

答案 0 :(得分:4)

将长度为1的格式应用于变量。

proc freq data = FirstNames;
Tables Name;
Format Name $1.;
run;

答案 1 :(得分:1)

使用proc sql

执行此操作的简便方法
proc sql:
    select substr(name, 1, 1) as firstLetter, count(*)
    from FirstNames
    group by substr(name, 1, 1);