La función ifelse "a la SAS"

Una función muy útil de R es ifelse:

1
2
3
val <- 0
var <- ifelse( val == 1, "uno", "cero" )
print( var )

Un programador en SAS haría algo así como

1
2
3
4
5
6
7
%macro test(val);
    %if &val=1 %then %let var=one;
    %else %let var=zero;
    %put &var;
%mend;

%test(0);

SAS, sin embargo, recomienda hacerlo así:

1
2
3
%let val=0;
%let var=%sysfunc(ifc(&val=1,one,zero));
%put &var;

Una línea, sí, pero una línea muy críptica. ¡Aunque para gustos están los colores!