使用名字首字母开头的给定名称定义名称

时间:2018-12-02 10:58:37

标签: sas

我尝试用两个不同的变量创建一个SAS数据集。 Y应该是全名。变量名称应以名字开头的名字给定,例如约翰逊·麦克应该是“约翰逊M”。史密斯·罗伯特·约翰(Smith Robert John)应该是“史密斯·J·”我不确定如何创建Names变量,任何人都可以帮忙吗?

data names;
Length y $ 40;
Input y &;
Names = y;
DATALINES;
Johnson Mike
Smith Robert John
Jones Linda Mary
Brown Marcus
run;

2 个答案:

答案 0 :(得分:0)

函数'countw''扫描''first'和'catx'可能会有所帮助。
1.获取姓名的单词数;
2.保留第一个字;
3.循环播放,连接每个单词的第一个单词和第一个字母(期望第一个单词);

答案 1 :(得分:0)

这应该与do循环一起工作

 data names_final;
    set names;
     do _n_ = 1 to countw(Y,' ');
        if _n_ = 1 then name =scan(Y,1);
        else name = catx(' ', name, cats(first(scan(y,_n_)),'.'));
    end;
 run;

您也可以

data names_final;
set names;
 name = cats(catx(' ', scan(y,1), catx('. ', first(scan(y,2)),first(scan(y,3) ))),'.');
run;