Sas 仅在名字中查找连字符

Sas 仅在名字中查找连字符,sas,hyphen,Sas,Hyphen,如果我有一个包含大量姓名的数据集,例如“Steve Jobs”,我如何仅使用proc print命令查找名字中有连字符的姓名 例: 数据集ex1包含 name -------- Steve Jobs Steve Job-s <- I do not want this Ste-ve Jobs <- I want this 我的代码将打印“Steve Job-s”和“Ste ve Jobs”。如何停止“Ste-ve Jobs”使用scan()功能仅检查第一个单词的情况。第三个参数指定

如果我有一个包含大量姓名的数据集,例如“Steve Jobs”,我如何仅使用proc print命令查找名字中有连字符的姓名

例: 数据集ex1包含

name
 --------
Steve Jobs
Steve Job-s <- I do not want this
Ste-ve Jobs <- I want this
我的代码将打印“Steve Job-s”和“Ste ve Jobs”。如何停止“Ste-ve Jobs”

使用
scan()
功能仅检查第一个单词的情况。第三个参数指定一个空格作为分隔符;这是必要的,因为默认分隔符中包含了
-

where scan(name,1,' ') like '%-%';

为什么要使用proc print进行此操作?你的问题与你期望的产出不一致,请澄清。从我从OP中所能理解的,他也不想要“史蒂夫·乔布斯”这个名字。你有什么特别的原因不同意在这种情况下使用proc print吗?我想我们对这个问题的理解是不同的。IMO Proc Print仅用于显示数据。这似乎是一个数据清理任务,所以不是一个过滤器,如果是数据清理,很可能在某个时候需要一个数据集。只是我的经验/意见,这就是为什么我问他/她为什么会使用它;alternatively@vasja这并不等同于
%-%
。像Steve-Jobs这样的东西将不会被过滤。@W_ee我很确定它在这种情况下是等效的。
%
通配符匹配零个或多个字符的字符串。工作起来像个符咒!非常感谢。
where scan(name,1,' ') like '%-%';