domingo, 28 de octubre de 2018

MACRO-FUNCIONES EN R

En otras entradas nos hemos ocupado de las macros de SAS y las macros de SPSS, como formas de automatizar procesos con datos empleando el código de ambas aplicaciones. Nos faltaba explicar las macros de R, que en la terminología de dicho lenguaje abierto se llaman "funciones".

Para desarrollarlas, tenemos primero que definir el conjunto de registros en los que se va a generalizar una operación. Vamos a partir de un ejemplo en el que escribimos un código que trata de sustraer el código de municipio de una cadena en la que el nombre del mismo está pegado a éste, que lleva el prefijo “id” a la izquierda. El conjunto se puede definir a través de un data frame: en el ejemplo lo hemos llamado cadena. Creamos una macrovariable (en el ejemplo la hemos llamado “poblac2”), a partir de los valores del data frame cadena.


Posteriormente, definimos el ámbito de la función con el subcomando “for”.


Después, colocamos una llave abierta ("{"), a la que le sigue el código necesario extraer el municipio en cada uno de los registros de “cadena”.


Para, finalmente, cerrarla ("}". Si ejecutamos todo el código, obtendremos el resultado de esta operación para cada una de los municipios.




cadena <- c("alcala-de-henares-id28005", "san-miguel-de-bernuy-id40183",
"san-roman-de-hornija-id47150","zumaia-id20081",
"beasain-id20019","ribatejada-id28122")

for (i in 1:length(cadena)) {

poblac2= cadena[i]

municipio <- gsub("-"," ",sapply(strsplit(poblac2, "-id"), "[", 1))
print(municipio)

}

El ejemplo es bastante sencillo para facilitar su entendimiento. Pero entre las llaves podemos colocar todo el código que necesitemos para ejecutar alguna transformación en cada registro. Si no lo utilizáramos, necesitaríamos adaptar uno a uno nuestro código para todos los casos.

No hay comentarios:

Publicar un comentario