spanish - traductor ingles
Traducir la condiciĆ³n ''donde'' de SAS a R (1)
Esto también se puede escribir como 1 = 1, y es esencialmente una condición VERDADERA estática.
En realidad, este es un pequeño truco que evita el problema de agregar cláusulas where múltiples (como variables macro). Cada condición debe ser separada por un operador (Y / O, por lo general Y), pero no siempre se sabe si otra condición precede a la que está agregando. Por ejemplo, es posible que desee la flexibilidad para agregar el mismo &filter
a ambos de estos lugares:
where x=1 &filter;
where &filter;
por supuesto, el primer ejemplo debe resolverse a x=1 AND some=filter;
y el segundo no debe resolverse where AND some=filter;
Recuerde, cualquier condición en una cláusula where finalmente se resuelve en verdadera o falsa. Al agregar "1", tenemos una condición "VERDADERA" estática que no tiene ningún efecto en la consulta pero nos da flexibilidad (y legibilidad) en el código (básicamente evita más declaraciones macro % if% else ) si siempre anteponemos el " Y "a & filtrar.
where 1 &filter
en lugar de
where %if %length(&filter)>4 and "%substr(%upcase(&filter))" ne AND %then %do;
where 1 and &filter
%end;
%else %do;
where &filter
%end;
Tengo una macro SAS que necesito convertir a R y, como soy nuevo en SAS, tengo problemas para entender una parte del código.
Al comienzo de la macro, tengo esta línea que define la macro -
%MACRO macroname(sdate=01JAN2011,edate=01JAN2013, FILTERS=platform in (1,2,3),OUT=data_final)
%if %length(&filters) > 2 %then %let filters = and &filters;
%else %let filters = %str( );
En una de las etapas en la macro, tengo el siguiente comando:
proc sort data = A noduplicates;
where 1 &filters;
by id, date;
run;
Entiendo que en la condición de dónde, se aplicarán las condiciones del filtro. Pero, ¿qué hace el 1? de manera similar, ¿qué hace la condición if else en la columna de filtro?
¡Gracias!