【问题标题】:Define name with the given name present by the initials用首字母出现的给定名称定义名称
【发布时间】:2018-12-02 10:58:37
【问题描述】:

我尝试创建一个包含两个不同变量的 SAS 数据集。 Y 应该是全名。变量 Names 的名称应由首字母表示的给定名称命名,例如约翰逊迈克应该是“约翰逊 M”。史密斯罗伯特约翰应该是“史密斯 R.J.”。我不确定如何创建 Names 变量,谁能帮忙?

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

【问题讨论】:

  • Stackoverflow 不是代码编写服务。您应该通过解释您尝试过的内容、阅读的资源以及描述您的努力中的缺点或错误来展示您之前的努力。

标签: sas


【解决方案1】:

这应该与 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; 

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2022-11-21
      • 2020-09-03
      • 2023-02-07
      • 2022-08-22
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多