Truco

Expresiones Regulares con Stata


Stata tiene expresiones regulares que le permiten trabajar con textos complejos o simples.

Las expresiones regulares son incluidas en las funciones de texto.

Una aplicación de las expresiones regulares es para el trabajo con datos sobre direcciones.  A continuación se presenta como (en la mayoría de los casos) separar un código postal y el estado de una dirección.

A continuación se presenta un ejemplo de su aplicación:

clear

input ///
str100 address
"1234 West St Blackburn  3000 Vic"
"West  St 1234 Blackburn  3000 vic"
"West  St 1234 Blackburn  Vic 3000"
"West  St 1234 Blackburn  sa 3000"
"12 West St Backburner  2001 nsw"
end
list

//getting postcode
generate postcode1=regexs(2) if regexm(address,"(^.*)([0-9][0-9][0-9][0-9])")  //comment: reg1

//get state
generate state=regexs(0) if regexm(address,"([Vv][Ii][Cc]|[Nn][Ss][Ww]|[Ss][Aa])")  //comment: reg2

//You could varify the first number of the postcode matches the state
generate check=1 if lower(state)=="vic" & regexm(postcode1,"[0-9]") & regexs(0)=="3"  //comment: reg3

list

Notes:

reg1: (^.*) significa obtener cualquier texto "." cero o más veces "*" y los corchetes indican una subsección de la cadena - en este caso una subsección. Subsección 1 es continuar hasta que el último número de 4 cifras, como se indica por: ([0-9] [0-9] [0-9] [0-9])

reg2: ([Vv] [II] [CC] | [nn] [SS] [Ww] | [SS] [Aa]) requiere un grupo de 3 caracteres, el primer carácter que sea V o v y el segundo carácter que sea I o i, etc, si los primeros 3 caracteres no se han encontrado entonces sigue buscando un conjunto con el siguiente grupo de tres caracteres. El símbolo "|" es un operador lógico OR.

reg3: busca para un conjunto de estados: lower(state) == "vic", la función lower() se asegura de que estamos comparando los estados en minúsculas. regexs(0) == "3" comprueba la coincidencia de la declaración anterior con el número 3, el inicio correcto del código postal vic.

Para obtener ayuda adicional sobre el código anterior use la siguiente línea de comandos de Stata:
findit regular expressions

¡Guarda esta información!

Descargalo en PDF

Descargar

¡Comparte este evento con tus colegas!

Email

Enviar

WhatsApp

Facebook

Cotizar
Próximos
Eventos

X

Mis cotizaciones:

Comentarios a tu solicitud:

Cotizar