【发布时间】:2022-08-11 12:28:54
【问题描述】:
我试图查看分组变量中的任何元素是否在一组值中。
SAS 或 PROC SQL 解决方案都可以使用。
这是一个示例数据集:
data input;/*table name*/
length ID 3 var1 $8;/*define char length*/
input ID var1 $;/*$ signifies char*/
datalines;/*start data*/
1 A
1 A
1 B
2 A
2 A
2 A
;/*end data*/
run;
ID var1
1 A
1 A
1 B
2 A
2 A
2 A
我想看看每个组ID 中var1 中的任何值是否等于“B”或“C”。如果其中之一是 \"B\" 或 \"C\",那么我希望输出表等于 1,否则为 0。在此示例中,因为组 ID = 1 在 @987654328 中有一个 \"B\" @,var2 的输出将等于 1。对于组 ID = 2,var2 应等于 0。
在 R 中,我会使用 any(),这将相当简单。我知道 SAS 在 SAS IML 中有类似的功能,但我不确定它是否可以以相同的方式使用。我正在寻找一种相对简单的方法来避免使用do 循环或子查询。
这是所需的输出:
data output;/*table name*/
input ID var2;/*$ signifies char*/
datalines;/*start data*/
1 1
2 0
;/*end data*/
run;
ID var2
1 1
2 0
我发现了一些类似的资源,但没有找到任何直接针对这个问题的资源。
Similar SAS Community Question 1
标签: sas