Introducción

Navegando los trabajos publicados en rpubs encontré el trabajo de Don Padmaperuma (25 de septiembre de 2019) DATA606_Homework4 en el cual se utiliza la función normalPlot() y me pareció bastante útil y práctica para graficar curvas con una sección sombreada, así que busqué si existía esta función en algún paquete de R(??normalPlot) sin éxito.

Entonces googleé la función y me parece que fue programada con base en el ejemplo que se presenta en el sitio Quick-R en la sección de gráficas avanzadas y gráficas de probabilidad con el ejemplo de la puntuación de CI en niños.

En este documento presento una versión simplificada1 de esta función como ejemplo de programación.

Qué son las funciones

Una de las ventajas de R es que, al ser un lenguaje de programación, cualquier usuario puede programar sus propias funciones.

¿Qué es una función? Una función es un conjunto de enunciados organizados en un código que permite realizar una acción o tarea específica.2

La sintaxis de una función en R generalmente es del tipo nombre_funcion(argumentos).3 Los argumentos son aspectos necesarios para que la función realice la tarea indicada.

Crear una función

Para crear cualquier función se utiliza function() indicando los argumentos que incluirá y después entre corchetes se escribe el código que ejecuta la función.

Esta es mi versión de la función normalPlot() en español:

Resolviendo el ejemplo de Quick-R donde se quiere conocer la proporción esperada de niños que tienen un CI entre 80 y 120, considerando que el CI tiene una media de 100 y desviación estándar de 15.

Ahora el ejercicio de Don dónde se desea conocer el porcentaje de una distribución normal estándar que se encuentra por debajo de \(Z=-1.35\).

Espero que haya sido provechoso este ejemplo de como programar una función, personalmente, me fascinan todas las posibilidades que brinda R y disfruto de programar y realizar análisis en él.

Además soy fan del trabajo de Hadley y casi todas mis gráficas las realizo con ggplot2. Aquí la versión de grafico_normal() en ggplot2.


  1. En todos los ejemplos de Don el argumento lógico tails es declarado como falso. Imagino que permite sombrear ambas colas de la distribución, pero no se bien que acción realice por lo que no lo incluyo en mi versión de la función.

  2. Para conocer más sobre cómo se conforma y se crea una función puedes revisar la sección 6 de Advanced R de Hadley Wickham.

  3. Existen convenciones para los nombres de las funciones -y en general para todos los objetos de R- yo te recomiendo leer la Guía de estilo en el libro R packages de Hadley Wickham.