Try using an array to convert the yes/no columns to numeric, then use the sum function. data have;
input id var1 $ var2 $ var3 $ var4 $ var5 $ var6 $;
datalines;
1 No No Yes Yes No Yes
2 Yes No Yes No Yes Yes
3 No Yes No Yes No No
4 Yes Yes No No Yes No
5 No No No No Yes No
6 Yes No No Yes No No
7 No No No No No No
8 Yes Yes Yes Yes Yes Yes
9 No Yes No Yes Yes No
10 No Yes No Yes Yes No
run;
data want;
set have;
array vars(6) $ var1-var6;
array vars_n(6) var_n1-var_n6;
do i=1 to 6;
if vars(i) = "Yes" then vars_n(i) = 1;
else if vars(i) = "No" then vars_n(i) = 0;
end;
sum = sum(of var_n1-var_n6);
if sum >= 3 then English = 1;
else if 0 <= sum < 3 then English = 0;
run;
... View more