Entradas

Mostrando entradas de agosto, 2022

Mas sobre apply

Imagen
 Una cosa importante es el poder implementar funciones propias usando apply, el investigar diversos caminos puede ser que al final el que creíamos que sería el idóneo, no lo es. Sin embargo el conocimiento queda ahí para futuras soluciones. Vamos ahora a ver como crear nuestras propias funciones y que se ejecuten en un apply . Tenemos el siguiente fragmento del script: library(tidyverse) df <- as.data.frame(read_csv("ruta/2008.csv",n_max = 100000)) df2 <- df[,c("CarrierDelay","WeatherDelay", "NASDelay", "SecurityDelay", "LateAircraftDelay")] df_clean <- df2[complete.cases(df2),] Una nueva función es complete.cases que elimina aquellos registros que tengan valores "ausentes" (missing - NA). > nrow(df_clean) [1] 19627 > 

Recorridos con apply (una perspectiva diferente a los ciclos tradicionales)

Imagen
Siempre tiende uno a buscar símiles entre un lenguaje de programación y otro, y siempre o casi siempre funciona  con aquellos lenguajes que toman como inspiración al lenguaje C , y que para ser honestos viene del antiguo y primitivo mundo de los lenguajes procedimentales (aunque C evolucionó a C++ para participar y ser en gran medida uno de los principales protagonistas del boom de la programación orientada a objetos). Sin embargo, y otra vez siendo honestos, en principio el código de R me parecía escritura del alfabeto chino, había cosas únicas que no había visto en otros lenguajes de programación. Es por eso que escribo el siguiente artículo que tiene que ver con los recorridos que se hacen a estructuras de datos, los llamados ciclos ( for , while , do-while , repeat, do loop , etc,). Ya llevo algunos años con R y me complacía programar soluciones usando ciclos ya que era la forma que me enseñaron desde la preparatoria, sin embargo con ánimo de hacer el código más eficiente di un

Nuevas equivalencias (y diferencias) en los paquetes DBI y dlpyr en R (3)

Imagen
Al igual que cuando leemos un libro y este libro enlaza a otras historias que ante la curiosidad innata de algunos especímenes de la raza humana tienen, pudiera ser que con las TIs pasé lo mismo. Digo lo anterior ya que inicié todos estos artículos debido a que queremos transformar los archivos de texto plano a bases de datos relacionales, sin embargo una de esas fuentes modificó la estructura de los archivos y de ahí nació la idea de obtener un diccionario de datos ( o FD como se le llama coloquialmente) y debido a ese reto van hasta ahora 3 artículos (4 con el presente) que tratan de explicar las características de los paquetes dplyr y de sparklyr . Antes de llegar a la construcción de lo que imagino serán las bases para crear el diccionario de datos seguiré explicando similitudes entre el SQL que todos los informáticos manejamos y el paquete dplyr que la verdad me esta sorprendiendo gratamente y que mis compañeros dominan muy bien. Agrupar en base a un valor cuantitativo discreto

Nuevas equivalencias (y diferencias) en los paquetes DBI y dlpyr en R (2)

Imagen
En este artículo abrimos un paréntesis para seguir haciendo esa analogía entre instrucciones dplyr y SQL ( DBI )  para tener un mejor conocimiento entre ambas sintaxis aunque pareciera que las instrucciones dlpyr se traducen en SQL como lo menciona el libro de " Mastering Spark with R " - " Los datos no son importados a R ; en cambio, dplyr  convierte esta tarea en instrucciones SQL que son enviadas a Spark " y en una sección previa del libro dice " ...si eres competente (proeficiente) en SQL , esta opción es viable para ti ". Sin embargo, reitero es importante que cuando un grupo de trabajo maneja esta sintaxis es bueno como personal y profesional de TI tener los conocimientos necesarios para dar soporte y porque no usar dichos verbos de este paquete. Vamos a regresar nuevamente a los datos abiertos del Instituto Mexicano del Seguro Social (IMSS) para extraer los puestos de trabajo que los patrones registran ante el Instituto correspondientes a julio y

Expresiones regulares en R para revisar columnas de archivos de texto

Imagen
" Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems " (Tomado del libro " Regular Expressions Cookbook ") En relación al artículo anterior una de las razones por las cuales es necesario hacer manipulación de las consultas devueltas por Apache Spark es sin duda la presentación de resultados. En este artículo vamos a presentar una forma de obtener y analizar las columnas de un archivo delimitado por algún carácter (en sus inicios la definición era Comma Separated Values -CSV - sin embargo debido a que la coma pudiera ser parte del contenido de una columna pues ahora se separan por cualquier otro caracter) y un acercamiento a sus tipos de datos. Cómo sería muy azaroso el revisar millones de registros con las herramientas estándar del lenguaje y citando nuevamente a la que pareciera es la biblia de los usuarios de R que utilizan Spark ( Mastering Spark with R ) en la sección 8.2.2 nos muestra un códi