Macros (fáciles) de SAS. Normaliza un texto rápido
¿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. ...