从SAS中的全名中删除中间名

Remove middle name from full name in SAS

我需要一种从 SAS 中的全名中删除中间名的方法。

示例: 名字=玛丽·安·史密斯 姓名=杰瑞·J·史密斯

想要的输出: 姓名 2= 玛丽·史密斯 Name2=杰瑞·史密斯

有什么办法可以做到这一点吗?

如果你有真人的真实姓名,那么问题比你暗示的要难得多。有些人的名字或姓氏(或两者)不只一个单词。那些只有一个名字的人呢?

无论如何 SCAN() 可以做你想做的事。

name2=catx(' ',scan(name,1,' '),scan(name,-1,' '));