SAS: Operaciones con cadenas de texto


La verdad es que SAS tiene un montón de funciones para tratar cadenas de texto. Y algunas de ellas son muy divertidas a la hora de programar por la cantidad de trabajo que te ahorran.
Vamos a empezar por algunas de las más típicas, las funciones para limpiar cadenas y quitar espacios. Vamos a utilizar la cadena como ejemplo:

%let cad = '  En un lugar de la  Mancha...  ';
Función Resultado Comentario
strip(&cad) ‘En un lugar de la Mancha…’ Elimina los espacios de los extremos, pero no los duplicados en el medio de la cadena.
compress(&cad) ‘EnunlugardelaMancha…’ Elimina todos los espacios de la cadena.
compbl(&cad) ‘ En un lugar de la Mancha… ‘ Elimina los espacios duplicados dejando uno solo. Deja al menos un espacio en los extremos si existían previamente.

Probablemente en algunas ocasiones sea bueno combinar algunas de ellas, como por ejemplo, para eliminar los espacios del inicio y del final y asegurarse de que no existen espacios dobles en la cadena podemos utilizar: strip(compbl(&cad)).

Tenemos también funciones para manejar mayúsculas y minúsculas.

%let cad = 'Iñigo fernández gonzález';
Función Resultado Comentario
upcase(&cad) ‘IÑIGO FERNÁNDEZ GONZÁLEZ’ Transforma la cadena a mayúsculas.
lowcase(&cad) ‘iñigo fernández gonzález’ Transforma la cadena a minúsculas.
propcase(&cad) ‘Iñigo Fernández González’ ‘Capitaliza’ todas las palabras de la cadena.

Otro tipo de funciones de texto son las que obtienen una subcadena a partir de una dada:
%let cad = 'Hélice de Watson & Crick';
%let fecha = "12/04/2021";

Función Resultado Comentario
substr(&cad,11,14) Watson & Crick Genera una cadena desde la posición 11 de la original y con 14 caracteres de longitud.
scan(&fecha,2,’/’) 04 Genera una cadena tomando el segundo trozo resultante de dividir la cadena indicada (&fecha) en trozos en función del carácter «/».

También tenemos funciones de búsqueda de una subcadena o de un carácter dentro de una cadena. Estas funciones pueden devolvernos la posición de la cadena buscada o sustituir la cadena buscada por otro valor:

%let cad = 'El sr. y la sra. Smith';
%let fecha = "12/04/2021";
Función Resultado Comentario
find(&cad,’Smith’) 18 Devuelve la posición de la primera ocurrencia de la subcadena buscada dentro de la cadena original.
index(&cad,’Smith’) 18 Devuelve la posición de la primera ocurrencia de la subcadena indicada.
translate(&fecha,’-‘,’/’) ’12-04-2021′ Sustituye uno a uno, uno o varios caracteres por otros en la cadena indicada.
tranwrd(&cad,’sr.’,’señor’) ‘El señor y la sra. Smith’ Hace lo mismo que la anterior, pero con grupos completos de caracteres.

Continuo mostrando más de estas funciones en la segunda parte de este artículo.

Un comentario sobre “SAS: Operaciones con cadenas de texto

Los comentarios están cerrados.