¿Tienes que normalizar un texto con SAS? Llevas dos horas buscando funciones de texto con la ayuda y te has crispado. En una macro y de forma muy rápida, os planteo un muestrario de funciones con las que podéis normalizar (un poco) un texto. Ésto es algo que tuve que hacer la otra mañana; no es muy sofisticado pero puede seros de utilidad:
%macro prepara(varib);
&varib. = translate(&varib., "AEIOU", "ÁÉÍÓÚ");
&varib. = tranwrd(&varib., "NUM", "NUMERO");
&varib. = tranwrd(&varib., "CONT", "CONTABLE");
&varib. = tranwrd(&varib., "IMP ", "IMPORTE ");
&varib. = tranwrd(&varib., " POR ", " ");
&varib. = tranwrd(&varib., " DE ", " ");
&varib. = tranwrd(&varib., " EN ", " ");
&varib. = tranwrd(&varib., " LOS ", " ");
&varib. = tranwrd(&varib., " AL ", " ");
&varib. = tranwrd(&varib., " EL ", " ");
&varib. = tranwrd(&varib., " ULTIMOS 12 ", " 12 ");
&varib. = tranwrd(&varib., " ULTIMOS 3 ", " 3 ");
&varib. = tranwrd(&varib., " ULTIMO MES ", " MES ");
&varib. = tranwrd(&varib., " TRANSACCIOENES ", " TRANSACCIONES ");
call prxchange(prxparse('s/([A-ZÑa-zñ 0-9]*)([^A-Za-zÑñ 0-9]*)/$1/'), -1, &varib.);
%mend;
En realidad es una sucesión de TRANWRD, pero destacaría el uso de la función TRANSLATE para eliminar tildes en nuestras vocales y el uso de CALL PRXCHANGE, del que ya tuvimos un aperitivo hace tiempo.
Sólo tenéis que copiar y pegar; si tenéis dudas, mejor seguid el hilo porque últimamente me están llegando demasiadas por correo y no dispongo de tiempo, algo que ya habréis detectado muchos de los seguidores del blog. De todos modos, tengo trucos de éstos para seguir dotando de contenido al blog en los próximos meses. Por cierto, si alguien lo mejora, que siga el hilo… Saludos.