Sas检查数组/列表是否包含元素

时间:2014-12-11 14:50:35

标签: sas

我的问题如下。

我有一个元素列表

("first element", "segundo elemento", "hirugarrena", "fourth element")

让我说我有一个单独的元素,说"h"

我试图找到一种方法来检查列表中是否有任何元素包含该孤独元素(h),以便contains变成true

if (list contains (h)) THEN output possible_element;

这样的东西

我曾尝试与=*in进行一些愚蠢的组合,但我得到的只是一个sintax错误。

总而言之,我一直试图找到类似if/where element sounds like in list.

的内容

你能帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您的元素在数组中,那么您可以使用in运算符,例如:

data _null_;

  array elements(*) $20 e1-e4
      ('first element','segundo elemento','hirugarrena','fourth element');

  h = 'fourth element';

  if h in elements then do; /* USE THE IN OPERATOR TO TEST FOR A MATCH */
    put 'found';
  end;
  else do;
    put 'not found';
  end;

run;

编辑:对不起 - 我输了"如果"而不是"在"在我的解释中。不幸的错字,现在纠正了。

答案 1 :(得分:1)

根据我的意见,我认为您可能需要以下内容:

For i = LBound(elements) To HBound(elements)
    If Find(elements{i},"h") > 0 Then
       do;
       /*do stuff*/
    End;
Next;

您可以使用find函数来为您提供搜索条件的字符数,然后将其应用于某些逻辑。

在上面的示例中,您只需要替换“' h'根据您的搜索条件。