Introducción a lenguaje de programación R y Rstudio
Motivación para empezar a programar
Un poco de historia
El lenguaje de programación R es una herramienta poderosa utilizada en estadísticas y análisis de datos. Su historia se remonta a la década de 1970, cuando dos estadísticos, Ross Ihaka y Robert Gentleman, comenzaron a desarrollarlo en la Universidad de Auckland, Nueva Zelanda. Su objetivo era crear un lenguaje de programación que fuera fácil de usar para análisis estadísticos y gráficos, tomando como base el lenguaje S.
En 1995, se lanzó la primera versión pública de R, lo que marcó un hito importante en su historia. A medida que la comunidad de usuarios y desarrolladores creció, R se convirtió en un estándar de facto en estadísticas y análisis de datos, debido a su flexibilidad y capacidad para manipular datos de manera eficiente.
El proyecto R se basa en código abierto, lo que significa que cualquiera puede contribuir al desarrollo y la mejora del lenguaje. Esto ha llevado a un ecosistema rico y diverso de paquetes y extensiones que amplían las capacidades de R en áreas específicas, como visualización de datos, aprendizaje automático y análisis estadístico avanzado.
En la década de 2000, la popularidad de R siguió creciendo, y muchas empresas e instituciones comenzaron a adoptarlo como una herramienta esencial en el análisis de datos y la toma de decisiones. Además, la comunidad R desarrolló una serie de herramientas y bibliotecas que hicieron que el lenguaje fuera más accesible para una audiencia más amplia.
Hoy en día, R es ampliamente utilizado en una variedad de campos, desde la investigación académica hasta la industria, y ha sido adoptado por empresas líderes en tecnología y finanzas. Su comunidad activa de usuarios y desarrolladores sigue trabajando para mejorar y expandir el lenguaje, lo que garantiza que R siga siendo una herramienta importante en el mundo del análisis de datos y la estadística.
¿Qué es el lenguaje de programación R?
El lenguaje de programación R es un lenguaje de alto nivel, utilizado para análisis estadístico y visualización de datos. Es especialmente popular en la ciencia de datos y la estadística. Ofrece una amplia gama de paquetes y herramientas para manipular datos, realizar cálculos estadísticos, crear gráficos y desarrollar modelos predictivos. R es de código abierto, lo que significa que su comunidad de usuarios contribuye constantemente con nuevas funcionalidades y paquetes. Su sintaxis es flexible y permite la exploración y transformación de datos de manera eficiente. En resumen, R es una herramienta poderosa para profesionales que trabajan con datos y desean realizar análisis estadísticos avanzados y visualizaciones personalizadas.
Los lenguajes de programación se clasifican en dos categorías: lenguajes de alto nivel y lenguajes de bajo nivel.
Un lenguaje de alto nivel es aquel que permite escribir código en una sintaxis más cercana al lenguaje humano, con una menor cantidad de detalles técnicos. Son más fáciles de leer y escribir y brindan un mayor nivel de abstracción. Ejemplos de lenguajes de alto nivel incluyen Python, Java, Ruby y C#.
Por otro lado, un lenguaje de bajo nivel es un lenguaje que requiere un conocimiento más detallado y profundo de la arquitectura del hardware. Estos lenguajes se utilizan para programar en niveles más cercanos al hardware y suelen requerir una mayor cantidad de código para lograr una tarea. Ejemplos de lenguajes de bajo nivel incluyen Assembly y C.
¿Qué es Rstudio?
RStudio es un entorno de desarrollo integrado (IDE) diseñado para el lenguaje de programación R. Facilita la escritura, ejecución y depuración de código R, además de proporcionar herramientas para la gestión de proyectos y la visualización de resultados, lo que lo convierte en una herramienta esencial para analistas y científicos de datos.
¿Qué es Quarto?
Quarto de R es una herramienta de código abierto de próxima generación que permite crear contenido dinámico y reproducible con R, Python, Julia y Observable. Es una extensión de R Markdown que agrega nuevas características y capacidades, como la posibilidad de crear documentos en múltiples formatos, como HTML, PDF, MS Word, ePub y más.
Quarto de R es una herramienta poderosa para científicos de datos, analistas de datos, ingenieros de software y autores técnicos. Se puede utilizar para crear una amplia gama de contenido, como artículos, informes, libros, presentaciones, blogs y sitios web.
Algunas de las características clave de Quarto de R incluyen:
- Soporte para múltiples lenguajes de programación, incluyendo R, Python, Julia y Observable.
- Posibilidad de crear documentos en múltiples formatos, como HTML, PDF, MS Word, ePub y más.
- Integración con RStudio, lo que facilita la ejecución y depuración de código.
- Soporte para crear contenido dinámico, como gráficos, tablas y presentaciones.
- Reproducibilidad: los documentos de Quarto de R se pueden volver a crear con solo presionar un botón, lo que garantiza que los resultados sean reproducibles.
Instalación de R, Rstudio y Quarto
Instalación de R:
Descarga R:
Ve al sitio web oficial de R: https://cran.r-project.org/
Haz clic en el enlace que corresponde a tu sistema operativo (por ejemplo, Windows, macOS o Linux).
Elige el espejo de descarga más cercano a tu ubicación.
Instala R:
En Windows: Ejecuta el archivo descargado y sigue las instrucciones del instalador.
En macOS: Ejecuta el archivo descargado y sigue las instrucciones del instalador.
En Linux: Puedes usar el administrador de paquetes de tu distribución para instalar R. Por ejemplo, en Ubuntu, puedes usar el siguiente comando:
csharpCopy codesudo apt-get install r-base
Verifica la instalación:
Abre una terminal o el símbolo del sistema.
Escribe
Ry presiona Enter. Deberías ver el prompt de R. Esto confirma que R se ha instalado correctamente.
Instalación de RStudio:
Descarga RStudio:
Ve al sitio web de RStudio: https://www.rstudio.com/products/rstudio/download/
Descarga la versión de RStudio Desktop que sea apropiada para tu sistema operativo (Windows, macOS o Linux).
Instala RStudio:
En Windows: Ejecuta el archivo descargado y sigue las instrucciones del instalador.
En macOS: Ejecuta el archivo descargado y sigue las instrucciones del instalador.
En Linux: Descarga el archivo .deb o .rpm correspondiente a tu distribución y ejecuta el comando apropiado para tu sistema. Por ejemplo, en Ubuntu, puedes usar el siguiente comando para instalar el archivo .deb:
cssCopy codesudo dpkg -i rstudio-x.yy.zzz-amd64.deb(Reemplaza
x.yy.zzzcon la versión específica que descargaste).
Ejecuta RStudio:
- Después de la instalación, puedes encontrar el icono de RStudio en tu menú de aplicaciones (Windows/macOS) o ejecutarlo desde la terminal en Linux.
Configura RStudio:
- Al abrir RStudio por primera vez, puedes configurar tus preferencias y ajustes según tus necesidades.
¡Listo! Ahora tienes R y RStudio instalados en tu computadora. Puedes comenzar a utilizar RStudio como entorno de desarrollo integrado (IDE) para trabajar con R y realizar análisis de datos, visualizaciones y programación en R.
Como es la interfaz de Rstudio
La interfaz de RStudio consta de varios elementos básicos:
Consola: Es donde se ejecutan los comandos de R y se muestra la salida.
Editor de Script: Permite escribir y editar scripts de R. Ideal para desarrollar código de manera organizada.
Entorno de Trabajo y Historial: Muestra las variables y archivos en uso, junto con el historial de comandos.
Explorador de Archivos y Directorios: Facilita la navegación y gestión de archivos.
Gráficos, Paquetes y Ayuda: Paneles para visualizar gráficos, cargar paquetes y acceder a la documentación.
Terminal: Proporciona acceso a una terminal de línea de comandos.
Pestañas de Archivo: Permite abrir múltiples scripts o documentos al mismo tiempo.
Barra de Herramientas: Contiene botones para funciones comunes, como guardar, cargar y ejecutar.
Barra de Menú: Ofrece acceso a configuraciones y opciones adicionales.
Estos elementos hacen que RStudio sea una herramienta eficiente y versátil para trabajar con R y otros lenguajes de programación.
Nociones de R
Usar R como una calculadora
En RStudio, puedes usar R como una calculadora en la consola de R. La consola es la parte inferior izquierda de la interfaz de RStudio y es donde puedes ingresar comandos de R uno por uno y ver los resultados de inmediato. Aquí hay algunos ejemplos de como usarlo:
Operaciones Aritméticas Básicas
Suma
Para sumar dos números en R, simplemente utiliza el operador +:
resultado <- 5 + 3
print(resultado) # Imprimirá 8 [1] 8
Resta
Para restar dos números en R, utiliza el operador -:
resultado <- 10 - 3
print(resultado) # Imprimirá 7 [1] 7
Multiplicación
La multiplicación se realiza con el operador *:
RCopy code
resultado <- 4 * 5
print(resultado) # Imprimirá 20 [1] 20
División
La división se realiza con el operador /:
resultado <- 10 / 2
print(resultado) # Imprimirá 5 [1] 5
Operaciones un poco más complejas
Además de las operaciones básicas, R permite realizar operaciones más avanzadas. Aquí tienes algunos ejemplos:
Potenciación
Puedes elevar un número a una potencia utilizando el operador ^:
resultado <- 2^3
print(resultado) # Imprimirá 8 [1] 8
Raíz Cuadrada
Para calcular la raíz cuadrada de un número, puedes usar la función sqrt():
resultado <- sqrt(25)
print(resultado) # Imprimirá 5 [1] 5
Funciones Trigonométricas
R también incluye funciones trigonométricas como sin(), cos(), y tan() que trabajan con ángulos en radianes:
angulo <- pi/6 # 30 grados en radianes
seno <- sin(angulo)
coseno <- cos(angulo)
tangente <- tan(angulo)
print(seno) # Imprimirá 0.5 [1] 0.5
print(coseno) # Imprimirá 0.8660254 (aproximadamente) [1] 0.8660254
print(tangente) # Imprimirá 0.5773503 (aproximadamente)[1] 0.5773503
Estos son solo algunos ejemplos de cómo usar R como una calculadora. Puedes combinar estas operaciones y funciones para realizar cálculos más complejos. R es una herramienta poderosa para realizar análisis numéricos y matemáticos, lo que lo convierte en una calculadora versátil para tareas más avanzadas en estadísticas, álgebra y cálculo.
Asignación de Variables:
Para asignar un valor a una variable, puedes utilizar <- o =. Por ejemplo:
x <- 10
y = 5Comentarios:
Puedes agregar comentarios en R utilizando el símbolo #. Los comentarios son ignorados por R y son útiles para documentar tu código. Por ejemplo:
# Esto es un comentarioImpresión de Resultados
Para imprimir el valor de una variable o una expresión en la consola, simplemente escribe el nombre de la variable o la expresión y presiona Enter. Por ejemplo:
x[1] 10
También se puede utilizar el comando print o cat para impresiones más especializadas:
print(x)[1] 10
cat( "Esto es una forma de imprimir el valor de x que es" , x , "\n")Esto es una forma de imprimir el valor de x que es 10
Paquetes en R
En R, un paquete es una colección de funciones, datos y documentación organizados en un formato estructurado. Los paquetes se utilizan para ampliar las capacidades del lenguaje R, permitiendo a los usuarios acceder a herramientas y funciones especializadas para tareas específicas. Los paquetes pueden ser creados por la comunidad de R o por individuos y organizaciones, y se distribuyen a través del repositorio de paquetes CRAN (Comprehensive R Archive Network).
Para utilizar un paquete en R, primero debes instalarlo en tu entorno de trabajo. Esto se puede hacer utilizando la función install.packages(). Por ejemplo, para instalar el paquete ggplot2 del tidyverse, puedes ejecutar el siguiente comando:
# install.packages("ggplot2")Una vez que el paquete está instalado en tu sistema, puedes cargarlo en tu sesión de R utilizando la función library(). Por ejemplo:
library(ggplot2)A continuación se presenta una lista de los paquetes más populares y algunos muy importantes para aquellas personas que se quieren iniciar en el lenguaje de programación R:
dplyr: es una poderosa herramienta para la manipulación y transformación de datos en R. Ofrece un conjunto coherente de funciones que facilitan tareas como filtrar filas, seleccionar columnas, agregar y resumir datos en marcos de datos, lo que lo convierte en una herramienta esencial para la manipulación de datos.
dbplyr: es una extensión de “dplyr” que permite realizar operaciones de manipulación de datos en bases de datos SQL directamente desde R. Esto mejora el rendimiento al trabajar con grandes conjuntos de datos almacenados en bases de datos, ya que las operaciones se ejecutan en la base de datos sin cargar los datos en la memoria de R.
stringr: El paquete simplifica la manipulación de cadenas de texto en R. Proporciona funciones intuitivas para buscar, reemplazar, dividir y manipular cadenas, lo que facilita la limpieza y procesamiento de datos que contienen texto.
lubridate: es una herramienta para el manejo de fechas y horas en R. Facilita la creación, manipulación y cálculos con fechas y horas, lo que es especialmente útil en análisis de series temporales y datos de tiempo.
readr: El paquete es una parte del “tidyverse” y se utiliza para importar datos de manera eficiente en R. Ofrece funciones para leer y cargar datos desde archivos CSV, TSV y otros formatos de manera rápida y consistente.
sqldf: permite realizar consultas SQL en marcos de datos de R, lo que facilita la manipulación y análisis de datos utilizando el lenguaje SQL. Esto es especialmente útil para quienes están familiarizados con SQL.
ggplot2: es una biblioteca de gráficos en R que proporciona una forma flexible y declarativa de crear visualizaciones de datos de alta calidad. Es ampliamente utilizado para la generación de gráficos en el “tidyverse.”
ggmap: permite combinar visualizaciones de datos generadas con “ggplot2” con mapas de Google Maps. Esto facilita la creación de gráficos que incluyen información geoespacial.
leaflet: es una biblioteca para crear mapas interactivos en R. Permite crear mapas interactivos y personalizables con facilidad y es ampliamente utilizado en aplicaciones web y análisis de datos espaciales.
plotly: es una biblioteca de visualización interactiva que permite crear gráficos interactivos y dinámicos en R. Es especialmente útil para crear visualizaciones interactivas en aplicaciones web y paneles de control.
shiny: es un marco de trabajo para crear aplicaciones web interactivas en R. Permite crear aplicaciones web interactivas y personalizables con facilidad, lo que es útil para compartir análisis de datos de manera interactiva.
DataExplorer: es una biblioteca que proporciona funciones para explorar rápidamente conjuntos de datos, generar resúmenes descriptivos y visualizaciones básicas para comprender mejor los datos.
SmartEDA: es otra biblioteca que facilita la exploración y análisis de datos mediante la generación automática de informes descriptivos y visualizaciones informativas.
DataMaid: es una herramienta para la documentación y validación de datos en R. Permite crear documentos de calidad que describen y validan los datos de manera detallada.
caret: es una biblioteca utilizada para el entrenamiento y evaluación de modelos de aprendizaje automático en R. Proporciona funciones y herramientas para simplificar el proceso de construcción y evaluación de modelos.
randomForest: es una biblioteca para construir modelos de bosques aleatorios en R. Es una herramienta popular para tareas de clasificación y regresión.
Finnet: paquete de R especialmente concebido para el análisis de redes financieras. Es cierto que se podrían obtener resultados similares combinando funciones de varios paquetes. Sin embargo, FinNet permite a los usuarios (principalmente analistas e investigadores) centrarse en lo que realmente importa, sus análisis, y dejar que el paquete se encargue de las operaciones tediosas y la conversión.
Estos paquetes son herramientas útiles en R para una variedad de tareas relacionadas con el análisis de datos, la visualización, el procesamiento de texto, la manipulación de fechas y horas, la generación de gráficos, el aprendizaje automático y más. La elección del paquete depende de las necesidades específicas de análisis y procesamiento de datos.
En internet se encuentran varias listas de paquetes básicos y útiles a la hora de manejar R y Rstudio como el presentado en el siguiente artículo.
Tipos de Datos en R
En R, los tipos de datos son fundamentales para representar y manipular información. R es un lenguaje de programación orientado a la estadística y el análisis de datos, por lo que ofrece una amplia variedad de tipos de datos para satisfacer las necesidades de los analistas y científicos de datos. En este capítulo, exploraremos los tipos de datos más comunes en R y cómo trabajar con ellos.
Tipos de Datos Básicos o estructuras primitivas
Números Enteros (integer):
Los números enteros son valores numéricos enteros, como -2, -1, 0, 1, 2, etc. En R, los números enteros se representan con el tipo de dato integer. Por ejemplo:
mi_entero <- 42 Números Reales (numeric):
Los números reales son valores con decimales, como 3.14 o -0.005. En R, los números reales se representan con el tipo de dato numeric. Por ejemplo:
RCopy code
mi_numero <- 3.1416
Texto (character):
El tipo de dato character se utiliza para representar texto. Puedes crear cadenas de caracteres utilizando comillas simples o dobles. Por ejemplo:
RCopy code
mi_texto <- "Hola, mundo"
Lógico (logical):
Los valores lógicos representan verdadero (TRUE) o falso (FALSE). Estos son fundamentales en evaluaciones condicionales y operaciones lógicas. Por ejemplo:
RCopy code
mi_booleano <- TRUE
Estructuras de Datos en R
Vectores (c)
Un vector es una colección ordenada de elementos del mismo tipo de datos. Puedes crear un vector utilizando la función c(). Por ejemplo:
mi_vector <- c(1, 2, 3, 4, 5) Secuencia (:) (seq)
El operador : también se puede utilizar para crear secuencias numéricas de manera más concisa. Su sintaxis es la siguiente:
inicio:fin
Por ejemplo, para crear la misma secuencia 1, 3, 5, 7, 9, puedes usar:
mi_secuencia <- 1:10Sin embargo, en este caso, se generará una secuencia completa desde 1 hasta 10, y no puedes especificar un paso no unitario como lo hiciste con seq(). Por lo tanto, el uso de : es más adecuado cuando necesitas una secuencia contigua de números.
Matrices (matrix)
Una matriz es una estructura bidimensional que contiene elementos del mismo tipo de datos. Puedes crear una matriz utilizando la función matrix(). Por ejemplo:
{r} mi_matriz <- matrix(1:9, nrow = 3, ncol = 3)}
Arreglo (array)
Un array en R es una estructura de datos multidimensional que permite almacenar información en matrices con más de dos dimensiones. Los elementos en un array son del mismo tipo y se acceden mediante índices para cada dimensión. Son útiles para representar datos con múltiples dimensiones, como imágenes 3D o datos volumétricos.
Ejemplo de array de tres dimensiones:
# Crear un array 3D de 2x3x2
mi_array_3d <- array(1:12, dim = c(2, 3, 2))
# Acceder a un elemento específico
mi_valor <- mi_array_3d[1, 2, 1]
# Realizar una operación en el array
mi_array_3d * 2, , 1
[,1] [,2] [,3]
[1,] 2 6 10
[2,] 4 8 12
, , 2
[,1] [,2] [,3]
[1,] 14 18 22
[2,] 16 20 24
Ejemplo de array de cuatro dimensiones:
# Crear un array 4D de 2x3x2x2
mi_array_4d <- array(1:24, dim = c(2, 3, 2, 2))
# Acceder a un elemento específico
mi_valor <- mi_array_4d[1, 2, 1, 2]
# Realizar una operación en el array
mi_array_4d * 3, , 1, 1
[,1] [,2] [,3]
[1,] 3 9 15
[2,] 6 12 18
, , 2, 1
[,1] [,2] [,3]
[1,] 21 27 33
[2,] 24 30 36
, , 1, 2
[,1] [,2] [,3]
[1,] 39 45 51
[2,] 42 48 54
, , 2, 2
[,1] [,2] [,3]
[1,] 57 63 69
[2,] 60 66 72
Listas (list)
Una lista es una colección de elementos que pueden ser de diferentes tipos de datos. Puedes crear una lista utilizando la función list(). Por ejemplo:
mi_lista <- list(1, "Hola", TRUE) Marcos de Datos (data.frame):
Un marco de datos es similar a una matriz, pero puede contener columnas de diferentes tipos de datos. Es una estructura de datos tabular comúnmente utilizada para el análisis de datos. Puedes crear un marco de datos utilizando la función data.frame(). Por ejemplo:
mi_data_frame <- data.frame(Nombre = c("Juan", "María", "Luis"),
Edad = c(25, 30, 22)) Al ser una estructura muy importante en los procesos de análisis de datos , se va a explicar con mayor nivel de detalle más adelante.
Tipos de Datos Especiales
Valores Faltantes (NA):
En R, NA se utiliza para representar valores faltantes o desconocidos en los datos.
Infinito (Inf):
R utiliza Inf para representar infinito positivo y -Inf para representar infinito negativo.
Operaciones lógicas en R
En R, las operaciones lógicas son fundamentales para realizar evaluaciones y tomar decisiones basadas en condiciones. Estas operaciones permiten comparar valores y expresiones para determinar si son verdaderos o falsos. R cuenta con varios operadores lógicos que te permiten realizar estas comparaciones. A continuación, explicaremos los operadores lógicos más comunes en R:
Operador de Igualdad (==)
El operador de igualdad se utiliza para comparar si dos valores son iguales. Devuelve TRUE si los valores son iguales y FALSE si no lo son. Por ejemplo:
5 == 5 # Devuelve TRUE[1] TRUE
5 == 3 # Devuelve FALSE[1] FALSE
Operador de Desigualdad (!=)
El operador de desigualdad se utiliza para verificar si dos valores no son iguales. Devuelve TRUE si los valores son diferentes y FALSE si son iguales. Por ejemplo:
5 != 3 # Devuelve TRUE[1] TRUE
5 != 5 # Devuelve FALSE[1] FALSE
Operadores de Mayor y Menor (> y <)
Estos operadores se utilizan para comparar si un valor es mayor o menor que otro. Devuelven TRUE si la comparación es verdadera y FALSE si no lo es. Por ejemplo:
5 > 3 # Devuelve TRUE[1] TRUE
5 < 3 # Devuelve FALSE[1] FALSE
Operadores de Mayor o Igual y Menor o Igual (>= y <=)
Estos operadores se utilizan para verificar si un valor es mayor o igual o menor o igual que otro. Devuelven TRUE si la comparación es verdadera y FALSE si no lo es. Por ejemplo:
5 >= 5 # Devuelve TRUE[1] TRUE
5 <= 3 # Devuelve FALSE[1] FALSE
Operador de Negación (!)
El operador de negación se utiliza para invertir el valor de una expresión lógica. Si una expresión es verdadera, ! la convertirá en falsa, y viceversa. Por ejemplo:
!(5 == 3) # Devuelve TRUE[1] TRUE
!(5 > 3) # Devuelve FALSE[1] FALSE
Operadores Lógicos AND (&) y OR (|)
Estos operadores se utilizan para combinar expresiones lógicas. El operador & devuelve TRUE si ambas expresiones son verdaderas, mientras que | devuelve TRUE si al menos una de las expresiones es verdadera. Por ejemplo:
(5 > 3) & (3 < 7) # Devuelve TRUE[1] TRUE
(5 > 3) | (3 < 2) # Devuelve TRUE[1] TRUE
Operador (%in%)
- El operador
%in%es especialmente útil cuando deseas verificar la presencia de múltiples valores al mismo tiempo. Puedes proporcionar un vector de valores que deseas buscar, y%in%devolverá un vector de valores lógicos correspondientes a cada elemento.
valores <- c("manzana", "uva", "pera")
vector_frutas <- c("manzana", "banana", "uva", "pera")
resultado <- valores %in% vector_frutas
print(resultado)[1] TRUE TRUE TRUE
El operador %in% es una forma conveniente de verificar la pertenencia de valores en R, y es útil en muchas situaciones, como filtrar datos, realizar subconjuntos condicionales y tomar decisiones basadas en la presencia o ausencia de elementos en un conjunto de datos.
Conclusiones
En este capítulo, hemos explorado los tipos de datos más comunes en R, desde números enteros y reales hasta textos y valores lógicos. Además, hemos introducido algunas de las estructuras de datos fundamentales en R, como vectores, listas, matrices y marcos de datos. Estos tipos de datos y estructuras de datos son esenciales para el análisis de datos y la programación en R, y te proporcionan las herramientas necesarias para trabajar con información de manera efectiva. En los próximos capítulos, profundizaremos en cómo trabajar con estos tipos de datos y estructuras en R.
Funciones
En R, las funciones son bloques de código que realizan tareas específicas y pueden ser reutilizadas en múltiples partes de un programa. Las funciones en R son fundamentales para la programación, ya que permiten organizar y modular el código, lo que facilita su mantenimiento y comprensión.
Aquí, proporciono información sobre cómo crear funciones en R, los argumentos de entrada, los argumentos adicionales y algunos ejemplos:
Creación de funciones en R:
Para crear una función en R, puedes utilizar la función function(). Aquí tienes una estructura básica de cómo definir una función:
nombre_de_la_funcion <- function(argumentos) {
# Código que realiza una tarea
# Puede incluir múltiples expresiones
# return(resultado)
} nombre_de_la_funcion: Debes reemplazar esto con el nombre que quieras darle a tu función.argumentos: Aquí se especifican los argumentos de entrada que la función aceptará.
Argumentos de entrada:
Los argumentos de entrada son valores que se pasan a una función para que la procese. Puedes definir cero o más argumentos de entrada en una función. Por ejemplo:
mi_funcion <- function(a, b) {
suma <- a + b
return(suma)
}
mi_funcion(100,140)[1] 240
En este ejemplo, la función mi_funcion acepta dos argumentos de entrada, a y b.
Argumentos adicionales (argumentos por defecto):
Puedes asignar valores por defecto a los argumentos de una función, lo que los convierte en argumentos opcionales. Estos valores se usarán si no se proporciona un valor al llamar a la función. Aquí tienes un ejemplo:
saludo_personalizado <- function(nombre = "Usuario") {
mensaje <- paste("Hola,", nombre)
return(mensaje)
}
saludo_personalizado()[1] "Hola, Usuario"
saludo_personalizado("Andrés")[1] "Hola, Andrés"
En este caso, si no se proporciona un valor para nombre al llamar a saludo_personalizado(), se utilizará “Usuario” como valor por defecto.
Ayuda en R
Existen diferentes formas de pedir ayuda en R.
help.start(): ayuda en generalhelp(fun)o?fun: ayuda sobre la función funapropos("fun"): lista de funciones que contiene la palabra funexample(fun): muestra un ejemplo de la función fun
help(read_csv) No documentation for 'read_csv' in specified packages and libraries:
you could try '??read_csv'
?read_csv2No documentation for 'read_csv2' in specified packages and libraries:
you could try '??read_csv2'
Si lo anterior no funciona se presentan los siguientes recursos:
OpenAI, ChatGPT.
Buscar ayuda: Google, StackOverflow.
Para aprender programación avanzada en R, el libro gratuito Advanced R de Hadley Wickham es una buena referencia. En particular es conveniente leer la guía de estilo (para todos: principiantes, intermedios y avanzados).
Para aprender programación en R enfocada a la ciencia de datos, el libro gratuito R for Data Science de Hadley Wickham.
Para mantenerse al tanto de las noticias de la comunidad de R pueden visitar R-bloggers.
Para entretenerse en una tarde domingo pueden navegar los reportes en RPubs.
Marco de Datos (data.frame)
Un Data Frame en R es una estructura de datos bidimensional que se utiliza para organizar y trabajar con datos tabulares. Combina las características de una matriz y una lista, lo que significa que puede contener diferentes tipos de datos en sus columnas y permite un fácil acceso y manipulación de datos. Los Data Frames son una parte esencial de la programación y el análisis de datos en R.
Los Data Frames constan de filas y columnas. Cada columna puede contener un tipo de datos diferente, como números, caracteres o factores. Esto los hace ideales para representar datos del mundo real, como conjuntos de datos de encuestas, hojas de cálculo, bases de datos, etc.
Creación manual de un Data Frame
Puedes crear un Data Frame manualmente utilizando la función data.frame(). Por ejemplo:
# Crear un Data Frame con dos columnas
mi_df <- data.frame( Nombre = c("Alice", "Bob", "Charlie"),
Edad = c(25, 30, 35) )
mi_df Nombre Edad
1 Alice 25
2 Bob 30
3 Charlie 35
Importación de datos externos para crear un Data Frame
R permite importar datos desde una variedad de fuentes, como archivos CSV, Excel, bases de datos, y más. Puedes utilizar funciones como read.csv(), read.table(), o paquetes como readr y readxl para cargar datos externos en un Data Frame.
Acceso y Manipulación de Datos
Los Data Frames en R ofrecen diversas formas de acceder y manipular datos. Para ilustrar esto, consideremos el conjunto de datos iris, que contiene información sobre diferentes especies de iris.
# Cargar el conjunto de datos iris
data(iris)
# Acceder a las primeras filas del Data Frame
head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
Selección de Filas y Columnas
Puedes seleccionar filas y columnas específicas utilizando corchetes. Por ejemplo, para seleccionar las primeras 5 filas de la columna “Sepal.Length”:
primeras_cinco_filas <- iris[1:5, "Sepal.Length"]
primeras_cinco_filas[1] 5.1 4.9 4.7 4.6 5.0
## llamando una columna específica con $
iris$Petal.Width [1] 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 0.2 0.2 0.1 0.1 0.2 0.4 0.4 0.3
[19] 0.3 0.3 0.2 0.4 0.2 0.5 0.2 0.2 0.4 0.2 0.2 0.2 0.2 0.4 0.1 0.2 0.2 0.2
[37] 0.2 0.1 0.2 0.2 0.3 0.3 0.2 0.6 0.4 0.3 0.2 0.2 0.2 0.2 1.4 1.5 1.5 1.3
[55] 1.5 1.3 1.6 1.0 1.3 1.4 1.0 1.5 1.0 1.4 1.3 1.4 1.5 1.0 1.5 1.1 1.8 1.3
[73] 1.5 1.2 1.3 1.4 1.4 1.7 1.5 1.0 1.1 1.0 1.2 1.6 1.5 1.6 1.5 1.3 1.3 1.3
[91] 1.2 1.4 1.2 1.0 1.3 1.2 1.3 1.3 1.1 1.3 2.5 1.9 2.1 1.8 2.2 2.1 1.7 1.8
[109] 1.8 2.5 2.0 1.9 2.1 2.0 2.4 2.3 1.8 2.2 2.3 1.5 2.3 2.0 2.0 1.8 2.1 1.8
[127] 1.8 1.8 2.1 1.6 1.9 2.0 2.2 1.5 1.4 2.3 2.4 1.8 1.8 2.1 2.4 2.3 1.9 2.3
[145] 2.5 2.3 1.9 2.0 2.3 1.8
Operaciones Básicas
Realizar operaciones básicas en un Data Frame es sencillo. Por ejemplo, calcular el promedio de la columna “Petal.Length”:
Promedio_petal_length <- mean(iris$Petal.Length)
Promedio_petal_length[1] 3.758
Agregar, Modificar y Eliminar Columnas
Puedes agregar nuevas columnas, modificar las existentes y eliminarlas según sea necesario. Por ejemplo, para agregar una nueva columna que calcule la relación entre el largo del pétalo y el sépalo:
iris_new <- iris
iris_new$Relacion_Petal_Sepal <- iris_new$Petal.Length / iris_new$Sepal.Length Funciones Útiles para Data Frames
El conjunto de datos iris nos permite explorar algunas funciones útiles en Data Frames.
head() y tail()
Estas funciones te permiten visualizar las primeras y últimas filas del Data Frame, respectivamente.
head(iris) # Muestra las primeras 6 filas por defecto Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
tail(iris, 3) # Muestra las últimas 3 filas Sepal.Length Sepal.Width Petal.Length Petal.Width Species
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
summary()
La función summary() proporciona un resumen estadístico de las columnas numéricas.
summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
str()
La función str() muestra la estructura del Data Frame, incluyendo los tipos de datos de cada columna.
str(iris) 'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
Filtrado y Selección
Puedes filtrar filas basadas en condiciones específicas y crear subconjuntos de un Data Frame según tus necesidades.
Filtrado de Filas
Por ejemplo, para seleccionar todas las filas donde la especie es “setosa”:
setosa <- iris[iris$Species == "setosa", ]
setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
11 5.4 3.7 1.5 0.2 setosa
12 4.8 3.4 1.6 0.2 setosa
13 4.8 3.0 1.4 0.1 setosa
14 4.3 3.0 1.1 0.1 setosa
15 5.8 4.0 1.2 0.2 setosa
16 5.7 4.4 1.5 0.4 setosa
17 5.4 3.9 1.3 0.4 setosa
18 5.1 3.5 1.4 0.3 setosa
19 5.7 3.8 1.7 0.3 setosa
20 5.1 3.8 1.5 0.3 setosa
21 5.4 3.4 1.7 0.2 setosa
22 5.1 3.7 1.5 0.4 setosa
23 4.6 3.6 1.0 0.2 setosa
24 5.1 3.3 1.7 0.5 setosa
25 4.8 3.4 1.9 0.2 setosa
26 5.0 3.0 1.6 0.2 setosa
27 5.0 3.4 1.6 0.4 setosa
28 5.2 3.5 1.5 0.2 setosa
29 5.2 3.4 1.4 0.2 setosa
30 4.7 3.2 1.6 0.2 setosa
31 4.8 3.1 1.6 0.2 setosa
32 5.4 3.4 1.5 0.4 setosa
33 5.2 4.1 1.5 0.1 setosa
34 5.5 4.2 1.4 0.2 setosa
35 4.9 3.1 1.5 0.2 setosa
36 5.0 3.2 1.2 0.2 setosa
37 5.5 3.5 1.3 0.2 setosa
38 4.9 3.6 1.4 0.1 setosa
39 4.4 3.0 1.3 0.2 setosa
40 5.1 3.4 1.5 0.2 setosa
41 5.0 3.5 1.3 0.3 setosa
42 4.5 2.3 1.3 0.3 setosa
43 4.4 3.2 1.3 0.2 setosa
44 5.0 3.5 1.6 0.6 setosa
45 5.1 3.8 1.9 0.4 setosa
46 4.8 3.0 1.4 0.3 setosa
47 5.1 3.8 1.6 0.2 setosa
48 4.6 3.2 1.4 0.2 setosa
49 5.3 3.7 1.5 0.2 setosa
50 5.0 3.3 1.4 0.2 setosa
Selección de Columnas
Puedes crear subconjuntos de un Data Frame para trabajar con un conjunto de datos más pequeño y específico. Por ejemplo, para crear un Data Frame solo con las columnas “Sepal.Length” y “Sepal.Width”:
subset_iris <- iris[, c("Sepal.Length", "Sepal.Width")]
subset_iris Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
7 4.6 3.4
8 5.0 3.4
9 4.4 2.9
10 4.9 3.1
11 5.4 3.7
12 4.8 3.4
13 4.8 3.0
14 4.3 3.0
15 5.8 4.0
16 5.7 4.4
17 5.4 3.9
18 5.1 3.5
19 5.7 3.8
20 5.1 3.8
21 5.4 3.4
22 5.1 3.7
23 4.6 3.6
24 5.1 3.3
25 4.8 3.4
26 5.0 3.0
27 5.0 3.4
28 5.2 3.5
29 5.2 3.4
30 4.7 3.2
31 4.8 3.1
32 5.4 3.4
33 5.2 4.1
34 5.5 4.2
35 4.9 3.1
36 5.0 3.2
37 5.5 3.5
38 4.9 3.6
39 4.4 3.0
40 5.1 3.4
41 5.0 3.5
42 4.5 2.3
43 4.4 3.2
44 5.0 3.5
45 5.1 3.8
46 4.8 3.0
47 5.1 3.8
48 4.6 3.2
49 5.3 3.7
50 5.0 3.3
51 7.0 3.2
52 6.4 3.2
53 6.9 3.1
54 5.5 2.3
55 6.5 2.8
56 5.7 2.8
57 6.3 3.3
58 4.9 2.4
59 6.6 2.9
60 5.2 2.7
61 5.0 2.0
62 5.9 3.0
63 6.0 2.2
64 6.1 2.9
65 5.6 2.9
66 6.7 3.1
67 5.6 3.0
68 5.8 2.7
69 6.2 2.2
70 5.6 2.5
71 5.9 3.2
72 6.1 2.8
73 6.3 2.5
74 6.1 2.8
75 6.4 2.9
76 6.6 3.0
77 6.8 2.8
78 6.7 3.0
79 6.0 2.9
80 5.7 2.6
81 5.5 2.4
82 5.5 2.4
83 5.8 2.7
84 6.0 2.7
85 5.4 3.0
86 6.0 3.4
87 6.7 3.1
88 6.3 2.3
89 5.6 3.0
90 5.5 2.5
91 5.5 2.6
92 6.1 3.0
93 5.8 2.6
94 5.0 2.3
95 5.6 2.7
96 5.7 3.0
97 5.7 2.9
98 6.2 2.9
99 5.1 2.5
100 5.7 2.8
101 6.3 3.3
102 5.8 2.7
103 7.1 3.0
104 6.3 2.9
105 6.5 3.0
106 7.6 3.0
107 4.9 2.5
108 7.3 2.9
109 6.7 2.5
110 7.2 3.6
111 6.5 3.2
112 6.4 2.7
113 6.8 3.0
114 5.7 2.5
115 5.8 2.8
116 6.4 3.2
117 6.5 3.0
118 7.7 3.8
119 7.7 2.6
120 6.0 2.2
121 6.9 3.2
122 5.6 2.8
123 7.7 2.8
124 6.3 2.7
125 6.7 3.3
126 7.2 3.2
127 6.2 2.8
128 6.1 3.0
129 6.4 2.8
130 7.2 3.0
131 7.4 2.8
132 7.9 3.8
133 6.4 2.8
134 6.3 2.8
135 6.1 2.6
136 7.7 3.0
137 6.3 3.4
138 6.4 3.1
139 6.0 3.0
140 6.9 3.1
141 6.7 3.1
142 6.9 3.1
143 5.8 2.7
144 6.8 3.2
145 6.7 3.3
146 6.7 3.0
147 6.3 2.5
148 6.5 3.0
149 6.2 3.4
150 5.9 3.0
Estos ejemplos muestran cómo acceder, manipular y realizar operaciones básicas en Data Frames utilizando el conjunto de datos iris. Estas habilidades son esenciales para la manipulación y análisis de datos en R.
Paquetes para manipulación de datos
La manipulación de Data Frames en R es una parte esencial del análisis de datos, pero puede volverse complicada y menos eficiente cuando se trabaja con grandes volúmenes de datos. Es por eso que se han desarrollado varios paquetes en R que facilitan y optimizan estas tareas. Entre los paquetes más populares para la manipulación de Data Frames se encuentran dplyr del conjunto tidyverse y data.table. Estos paquetes ofrecen ventajas significativas cuando se trata de manejar grandes conjuntos de datos. A continuación se presenta una lista de paquetes pueden ser de interés para el lector:
dplyr:dplyres parte del conjuntotidyversey es ampliamente utilizado para la manipulación y transformación de Data Frames en R. Proporciona funciones intuitivas y eficientes para filtrar, seleccionar, agrupar y resumir datos.data.table:data.tablees otro paquete altamente eficiente para la manipulación de Data Frames en R. Es conocido por su velocidad y es especialmente útil cuando se trabaja con grandes volúmenes de datos.tibble:tibblees un paquete del conjuntotidyverseque ofrece una versión mejorada de Data Frames, con una sintaxis más consistente y amigable. Es útil para presentar y visualizar datos de manera más clara.sqldf:sqldfpermite realizar operaciones de manipulación de datos en Data Frames utilizando consultas SQL. Es útil para quienes están familiarizados con SQL y prefieren utilizarlo para transformar datos.dtplyr:dtplyrcombina las ventajas dedplyrydata.table. Permite escribir código en estilodplyr, pero internamente utilizadata.tablepara obtener eficiencia en el manejo de grandes conjuntos de datos.datatable:datatableproporciona herramientas para manipular y visualizar grandes conjuntos de datos de manera eficiente. Aunque tiene un nombre similar adata.table, son paquetes diferentes con objetivos distintos.tidyq:tidyqes un paquete que permite realizar operaciones de manipulación de datos utilizando una sintaxis similar a SQL. Es útil para quienes prefieren trabajar con consultas SQL en lugar de código R.dqrng: Aunque no está directamente relacionado con la manipulación de Data Frames,dqrnges útil para la generación eficiente de números aleatorios, lo cual puede ser relevante en el análisis de datos.
Referencias
Wickham, H., & Grolemund, G. (2017). R for Data Science. O’Reilly Media.
Provost, F., & Fawcett, T. (2013). Data Science for Business. O’Reilly Media.
Chang, W. (2018). R Graphics Cookbook. O’Reilly Media.
Wickham, H. (2014). Advanced R. CRC Press.
Xie, Y., Allaire, J.J., & Grolemund, G. (2018). R Markdown: The Definitive Guide. CRC Press.
Packt Publishing. (Recuperado en 2023). RStudio Masterclass - A Comprehensive Guide to RStudio. [En línea]. Disponible en https://www.packtpub.com/product/rstudio-masterclass-a-comprehensive-guide-to-rstudio-video/9781801075719
Xie, Y., Dervieux, C., & Riederer, E. (2020). R Markdown Cookbook. CRC Press.
Dowle, M. (2019). Efficient Data Manipulation with R. Matt Dowle.
Murrell, P. (2018). R Graphics. CRC Press.
Kabacoff, R. I. (2011). R in Action. Manning Publications.