Aspectos generales de R:

R es un lenguaje de programación y entorno de software libre enfocado principalmente en el análisis estadístico y la visualización gráfica. Robert Gentleman y Ross Ihaka desarrollaron este en la Universidad de Auckland, Nueva Zelanda; es una implementación del lenguage S.

Características principales de R:

  • Análisis Estadístico: Ofrece diversos métodos estadísticos como modelos lineales y no lineales, pruebas clásicas, análisis de series temporales, clasificación, clustering entre otros.

  • Visualización de Datos: Se le reconoce por sus habilidades gráficas, lo que posibilita la generación de gráficos personalizados y de alta calidad, elemento esencial para el análisis y la presentación de datos.

  • Programación: Permite a los usuarios desarrollar nuevas funciones, mejorar las existentes y automatizar tareas repetitivas. Es un lenguaje de programación completo.

  • Extensibilidad: La arquitectura de R es modular y se puede extender con paquetes adicionales. En CRAN (Red de Archivo R Integral) hay una gran cantidad de paquetes disponibles, los cuales abarcan diversos métodos estadísticos y gráficos.

  • Comunidad y Soporte: La presencia de una gran cantidad de usuarios y desarrolladores se refleja en la existencia de abundantes recursos para aprender y recibir soporte, como foros, grupos de discusión y documentación extensa.

Cuándo se podría implementar R:

  • Análisis de Datos: Es ideal cuando se necesitan realizar análisis estadísticos complejos, exploratorios y confirmatorios.

  • Visualización de Datos: Si necesitas presentar eficazmente tus resultados de análisis con gráficos personalizados y de alta calidad.

  • Ciencia de Datos y Machine Learning: Se utiliza mucho en el ámbito de la ciencia de datos para realizar tareas de machine learning, mining y análisis predictivo.

  • Investigación Académica: Debido a su capacidad para manejar y analizar grandes volúmenes de datos, así como por su integración con otros lenguajes y herramientas de análisis, muchos investigadores y académicos utilizan R.

  • Automatización de Tareas: Puedes automatizar las tareas repetitivas de análisis de datos utilizando scripts en el lenguaje R.

  • Integración y Reproducibilidad: R ofrece herramientas y paquetes que hacen más fáciles las tareas de integración con otros sistemas y la reproducibilidad de resultados en proyectos.

Generación del Script:

La creación del Script en RStudio es muy facil y sencillo, solamente nos dirigimos a la parte superior y seguir los siguientes pasos: File -> New File -> R Script o simplemente oprimiendo Ctrl + Shift + N tal y como se enseña en la imagen:

¿Qué es un objeto?

En un sentido más amplio, todos los elementos que manipulamos en R son lo que comúnmente llamos como objetos. Especificamente los objetos en R son secuencias ordenadas que pueden contener informacion numérica (variables cuantitativas), alfanumérico (variable cualitativo) o de tipo lógico ( TRUE o FALSE ), pero no se pueden hacer ningun tipo de mezclas de estos.

La función que me permite crear los objetos en R es la función concatenar que se escribe de la siguiente forma c() y dentro de esos parentesis se coloca la información que se desea almacenar. Una vez el objeto sea creado por lo general se acostumbra a ponerle un etiquetado utilizando un pequeño nombre que me indique que información guardé en mi objeto, para eso usamos el comando <- colocando éste en medio del nombre y el objeto.

mascotas<- c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE)
mascota_fav<- c('Perro','Loro','Perro','Gato','Gato','Hamster','Pescado','Gato')
edad<- c(17,22,19,21,15,19,21,20)

Aquí tenemos un ejemplo del tipo de información que pueden obtener nuestros objetos al momento de ser creados; en el objeto mascotas tenemos la informacion de las respuestas de 8 personas a la pregunta de si tienen o no tienen mascotas y es de tipo lógico, el objeto mascota_fav es de tipo cualitativo y almacena cual es la mascota favorita de cada una de las personas, por ultimo, en edad tenemos las edades cuando cada uno obtuvo su primera mascota y es de tipo cuantitativo.

Tipos de objetos:

En R, se encuentran diversos tipos de objetos que actúan como contenedores para almacenar información necesaria para llevar a cabo análisis estadisticos y crear gráficos. Entre los principales objetos en R se encuentran las variables (ya vistas anteriormente), matrices, arreglos, marcos de datos y listas.

Matrices:

Son estructuras bidimensionales que contienen elementos del mismo tipo de datos. Sepueden crear mediante la función matrix(), especificando el número de filas y columnas:

matriz<- matrix(1:8, nrow = 4, ncol = 4)
matriz
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    1    5
## [2,]    2    6    2    6
## [3,]    3    7    3    7
## [4,]    4    8    4    8

Arreglos:

Son similares a las matrices pero pueden tener más de dos dimensiones. Se crean utilizando la función array(), indicando las dimensiones deseadas.

arreglo<- array(1:16, dim = c(8,4,8))
arreglo
## , , 1
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 3
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 4
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 5
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 6
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 7
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16
## 
## , , 8
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    9    1    9
## [2,]    2   10    2   10
## [3,]    3   11    3   11
## [4,]    4   12    4   12
## [5,]    5   13    5   13
## [6,]    6   14    6   14
## [7,]    7   15    7   15
## [8,]    8   16    8   16

Marcos de Datos:

Son estructuras bidimensionales que contienen variables con varios tipos de datos. Se pueden crear manualmente o importar desde fuentes externas.

marco_dato <- data.frame(
  nombre = c("Juan", "María", "Pedro"),
  edad = c(25, 30, 28),
  sexo = c("M", "F", "M")
)
marco_dato
##   nombre edad sexo
## 1   Juan   25    M
## 2  María   30    F
## 3  Pedro   28    M

Listas:

Son estructuras flexibles que pueden contener elementos de diferentes tipos de datos, incluidos otros objetos de R. Se crean utilizando la función list().

listas <- list(
  objeto = c(1, 2, 3),
  matriz = matrix(1:4, nrow = 2),
  dataframe = data.frame(x = 1:3, y = letters[1:3])
)
listas
## $objeto
## [1] 1 2 3
## 
## $matriz
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## 
## $dataframe
##   x y
## 1 1 a
## 2 2 b
## 3 3 c

Funciones más comunes.

En R, hay muchas funciones que se usan frecuentemente para diferentes tareas. Aquí te dejo una lista de algunas de las funciones más comunes y útiles en R, organizadas por categorías:

Manipulación de Datos

  1. Lectura de Datos:

read. csv(): Lee archivos CSV.

read. table(): Leer archivos de texto.

readRDS(): Lee archivos RDS.

read_excel(): Es necesario tener el paquete readxl para leer archivos de Excel.

  1. Escritura de Datos:

write.csv(): Guardar información en un archivo CSV.

write.table(): Registra información en un archivo de texto.

saveRDS(): Almacena un objeto en un archivo RDS.

write_excel(): Utiliza el paquete writexl para guardar datos en un archivo de Excel.

  1. Transformación de Datos:

subset(): Obtén subconjuntos de un data frame.

merge(): Une dos marcos de datos.

rbind(), cbind(): Junta los data frames por filas o columnas.

reshape(): Reordena un marco de datos (requiere el paquete reshape2 o tidyr).

Análisis Estadístico

  1. Descriptivos:

summary(): Da un resumen de estadísticas descriptivas.

mean(), median(), sd(), var(): Encuentra el promedio, la mediana, la desviación estándar y la varianza.

quantile(): Calcula cuantiles.

  1. Modelos Estadísticos:

lm(): Ajusta modelos lineales.

glm(): Ajustar modelos lineales generalizados.

nls(): Modifica modelos que no son lineales.

anova(): Haz un análisis de varianza.

  1. Pruebas Estadísticas:

t.test(): Haz la prueba t.

chisq.test(): Realice el test de chi-cuadrado.

wilcox.test(): Haz la prueba de Wilcoxon.

Manejo y análisis de datos

  1. Exploración de Datos:

head(), tail(): Muestra las filas iniciales o finales de un marco de datos.

str(): Muestra cómo está estructurado un objeto.

dim(), nrow(), ncol(): Visualiza las dimensiones de un marco de datos.

  1. Operaciones Vectoriales:

sum(), prod(): Adición y multiplicación de elementos.

length(): La extensión de un vector.

unique(): Obtén los valores que no se repiten en un vector.

sort(), order(): Organiza los elementos de un vector.

  1. **Visualización de Datos*
  • Gráficos Base:

plot(): Grafica un diagrama de dispersion.

hist(): Crea un histograma.

boxplot(): Dibuja un gráfico de caja.

barplot(): Genera un gráfico de barras.

  • Gráficos Avanzados:

ggplot(): El paquete ggplot2 tiene como función principal la creación de gráficos complejos y personalizados.

qplot(): Uso eficiente de ggplot2.

Operaciones Lógicas.

Las comparaciones y combinaciones de condiciones se realizan utilizando operaciones lógicas en R. El control de flujo y la toma de decisiones en el código dependen fundamentalmente de estas operaciones.

Operaciones de comparación:

  1. Igualdad (==):

Comprueba si dos valores son iguales.

a <- 5
b <- 5
resultado <- a == b
print(resultado)  # TRUE
## [1] TRUE
  1. Desigualdad (!=):

Comprueba si dos valores son diferentes.

a <- 5
b <- 3
resultado <- a != b
print(resultado)  # TRUE
## [1] TRUE
  1. Mayor que (>):

Comprueba si un valor es mayor que otro.

a <- 5
b <- 3
resultado <- a > b
print(resultado)  # TRUE
## [1] TRUE
  1. Menor que (<):

Comprueba si un valor es menor que otro.

a <- 3
b <- 5
resultado <- a < b
print(resultado)  # TRUE
## [1] TRUE
  1. Mayor o igual que (>=):

Comprueba si un valor es menor o igual a otro.

a <- 5
b <- 5
resultado <- a >= b
print(resultado)  # TRUE
## [1] TRUE
  1. Menor o igual que (<=):

Comprueba si un valor es menor o igual a otro.

a <- 3
b <- 5
resultado <- a <= b
print(resultado)  # TRUE
## [1] TRUE

Más claramente lo podemos obsevar en el siguiente ejemplo:

# Definir un vector de edades
edades <- c(23, 45, 17, 30, 15, 28)

# Comprobar cuáles edades son mayores de edad (>= 18)
mayores_de_edad <- edades >= 18
print(mayores_de_edad)  
## [1]  TRUE  TRUE FALSE  TRUE FALSE  TRUE
# Contar cuántos son mayores de edad
numero_mayores_de_edad <- sum(mayores_de_edad)
print(numero_mayores_de_edad)
## [1] 4
# Filtrar los mayores de edad
edades_mayores <- edades[mayores_de_edad]
print(edades_mayores)  
## [1] 23 45 30 28
# Comprobar si todas las edades son mayores de edad
todos_mayores <- all(edades >= 18)
print(todos_mayores)
## [1] FALSE
# Comprobar si al menos una edad es mayor de edad
al_menos_uno_mayor <- any(edades >= 18)
print(al_menos_uno_mayor) 
## [1] TRUE

Gráficos básicos de R, ventanas de R, personalizar y exportar:

Gráficos básicos de R:

En R, los gráficos son una parte fundamental para la visualización de los datos.

  1. Gráfico de Dispersión (plot):
x <- rnorm(100)
y <- rnorm(100)
plot(x, y, main="Gráfico de Dispersión", xlab="Eje X", ylab="Eje Y")

  1. Histograma (hist):
data <- rnorm(1000)
hist(data, main="Histograma", xlab="Valores", ylab="Frecuencia", col="blue")

  1. Diagrama de Cajas (boxplot):
data <- rnorm(100)
boxplot(data, main="Diagrama de Cajas", ylab="Valores")

  1. Gráfico de Barras (barplot):
counts <- table(mtcars$cyl)
barplot(counts, main="Gráfico de Barras", xlab="Número de Cilindros", ylab="Frecuencia", col="red")

  1. Gráfico de Líneas (plot con type="l"):
x <- seq(1, 10, by=0.1)
y <- sin(x)
plot(x, y, type="l", main="Gráfico de Líneas", xlab="Eje X", ylab="Eje Y")

Personalización de gráficos.

Para personalizar los gráficos, puedes modificar parámetros como colores, etiquetas, tipos de línea, etc.

  • Título y etiquetas:
plot(x, y, main="Título Personalizado", xlab="Etiqueta X", ylab="Etiqueta Y")

  • Colores:
plot(x, y, col="blue")

hist(data, col="lightgreen")

  • Tipos de punto y línea:
plot(x, y, pch=19, col="red")  # pch define el tipo de punto

plot(x, y, type="b", lty=2, lwd=2)  # lty define el tipo de línea, lwd define el grosor de la línea

Exportar gráficos.

R te permite exportar gráficos a varios formatos, como PNG, PDF, JPEG, etc.

  • Exportar a PNG:
png("mi_grafico.png")
plot(x, y)
dev.off()
## png 
##   2
  • Exportar a PDF:
pdf("mi_grafico.pdf")
plot(x, y)
dev.off()
## png 
##   2
  • Exportar a JPEG:
jpeg("mi_grafico.jpg")
plot(x, y)
dev.off()
## png 
##   2

En RStudio, puedes exportar gráficos utilizando la interfaz gráfica también. Haz clic en el ícono de exportar (usualmente un disquete o una flecha) en la ventana de Plots y elige el formato que prefieras.

Lo anterior aplicado todo en conjunto a modo de ejemplo tenemos:

x <- seq(1, 10, by=0.1)
y <- sin(x)
plot(x, y, type="l", main="Gráfico de Seno", xlab="Eje X", ylab="Eje Y", col="blue", lty=2, lwd=2)
legend("topright", legend="Seno", col="blue", lty=2)

png("grafico_seno.png")
plot(x, y, type="l", main="Gráfico de Seno", xlab="Eje X", ylab="Eje Y", col="blue", lty=2, lwd=2)
dev.off()
## png 
##   2

Ventanas de R.

  1. Consola (Console): Aquí es donde escribes y ejecutas comandos de R. Los resultados y mensajes de error se muestran en esta ventana.

  2. Editor de Scripts (Source): Permite escribir, guardar y ejecutar scripts completos. En RStudio, puedes abrirlo desde File -> New File -> R Script.

  3. Ventana de Gráficos (Plots): Muestra los gráficos generados por los comandos gráficos. Puedes navegar por gráficos anteriores y guardarlos desde esta ventana.

  4. Ambiente (Environment): Muestra las variables y objetos que están actualmente en la memoria. Te permite inspeccionar y gestionar los datos cargados.

  5. Historial (History): Guarda un registro de todos los comandos ejecutados en la sesión. Puedes reutilizar comandos anteriores desde aquí.

Importar archivos.

Importar datos en R desde archivos .csv y .xls es una tarea común y fundamental para el análisis de datos.

Importar un Archivo .csv

Los archivos .csv (valores separados por comas) son uno de los formatos más comunes para almacenar datos tabulares. Puedes importar estos archivos en R utilizando la función read.csv.

library(readr)
MEN_1_ <- read_csv("C:/Users/Lenovo/Downloads/MEN(1).csv")
## Rows: 11219 Columns: 41
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (5): CÓDIGO_MUNICIPIO, MUNICIPIO, CÓDIGO_DEPARTAMENTO, DEPARTAMENTO, ETC
## dbl (35): AÑO, CÓDIGO_ETC, POBLACIÓN_5_16, TASA_MATRICULACIÓN_5_16, COBERTUR...
## num  (1): TAMAÑO_PROMEDIO_DE_GRUPO
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(MEN_1_)

Importar un Archivo .xls o .xlsx

Para importar archivos Excel (.xls o .xlsx), puedes utilizar paquetes como readxl o openxlsx.

library(readxl)
R_1_ <- read_excel("C:/Users/Lenovo/Downloads/R (1).xlsx")
View(R_1_)

Creación de variables y DataFrame.

Para crear un dataframe en R, primero necesitas definir las variables que serán las columnas del data frame. Luego, puedes usar la función data.frame() para combinar estas variables en una estructura tabular.

edad <- c(25, 30, 22, 35)
nombre <- c("Ana", "Luis", "María", "Juan")
casado <- c(TRUE, FALSE, TRUE, FALSE)
ingresos <- c(50000, 60000, 45000, 70000)

print("Variables creadas:")
## [1] "Variables creadas:"
print(edad)
## [1] 25 30 22 35
print(nombre)
## [1] "Ana"   "Luis"  "María" "Juan"
print(casado)
## [1]  TRUE FALSE  TRUE FALSE
print(ingresos)
## [1] 50000 60000 45000 70000
mi_data_frame <- data.frame(edad, nombre, casado, ingresos)
print("Data Frame creado:")
## [1] "Data Frame creado:"
print(mi_data_frame)
##   edad nombre casado ingresos
## 1   25    Ana   TRUE    50000
## 2   30   Luis  FALSE    60000
## 3   22  María   TRUE    45000
## 4   35   Juan  FALSE    70000

Cargue de bases de datos.

Cargar una base de datos en R puede hacerse de diversas formas, como desde una página web, la base de datos integrada en R (como iris o mtcars), archivos locales, servidores de bases de datos, API web y más.

De una página web:

Si la base de datos está disponible en una URL, puedes cargarla utilizando funciones como read.csv() o read.table() proporcionando la URL como argumento al objeto creado con dicho URL.

De R:

R tiene varias bases de datos integradas, como iris, mtcars, airquality, etc. Puedes acceder a ellas directamente.

datos <- iris  # Carga la base de datos de iris

Estadística descriptiva.

La estadística descriptiva se enfoca en la recopilación, organización, presentación y resumen de datos numéricos con el fin de comprender y comunicar claramente sus características fundamentales. Es una rama esencial de la estadística.

La media, moda y desviación estandar:

Para calcular la media, moda y desviación estándar de las variables en un data frame en R, puedes utilizar funciones como mean(), Mode(), y sd(), respectivamente.

media_edad <- mean(mi_data_frame$edad)
media_ingresos <- mean(mi_data_frame$ingresos)
moda_nombre <- Mode(mi_data_frame$nombre)
desviacion_casado <- sd(mi_data_frame$casado)

print(paste("Media de la edad:", media_edad))
## [1] "Media de la edad: 28"
print(paste("Media de los ingresos:", media_ingresos))
## [1] "Media de los ingresos: 56250"
print(paste("Moda del nombre:", moda_nombre))
## [1] "Moda del nombre: Ana"
print(paste("Desviación estándar de casado:", desviacion_casado))
## [1] "Desviación estándar de casado: 0.577350269189626"

Resum de las medidas de tendencia central.

Para calcular un resumen de las medidas de tendencia central (como la media, mediana y moda) para un data frame en R, puedes utilizar la funcion como `summary() que proporciona un resumen estadístico básico.

  • Utilizando la Función summary()

La función summary() proporciona un resumen básico de las medidas de tendencia central para cada variable en el data frame.

resumen <- summary(mi_data_frame)
print(resumen)
##       edad          nombre            casado           ingresos    
##  Min.   :22.00   Length:4           Mode :logical   Min.   :45000  
##  1st Qu.:24.25   Class :character   FALSE:2         1st Qu.:48750  
##  Median :27.50   Mode  :character   TRUE :2         Median :55000  
##  Mean   :28.00                                      Mean   :56250  
##  3rd Qu.:31.25                                      3rd Qu.:62500  
##  Max.   :35.00                                      Max.   :70000

Dispersión y forma.

Puedes utilizar diversas técnicas para calcular la dispersión y forma de los datos en un dataframe en R, como por ejemplo el cálculo del rango, varianza y desviación estándar. Además, puedes visualizar la distribución de los datos mediante gráficos como histogramas o diagramas de caja.

Cálculo de la Dispersión.

  1. Rango:

El rango es la diferencia entre el valor máximo y el valor mínimo en un conjunto de datos.

rango_edad <- max(mi_data_frame$edad) - min(mi_data_frame$edad)
rango_ingresos <- max(mi_data_frame$ingresos) - min(mi_data_frame$ingresos)

print(paste("Rango de edad:", rango_edad))
## [1] "Rango de edad: 13"
print(paste("Rango de ingresos:", rango_ingresos))
## [1] "Rango de ingresos: 25000"
  1. Varianza y Desviación estandar:

La varianza mide qué tan dispersos están los valores en torno a la media. La desviación estándar es simplemente la raíz cuadrada de la varianza.

varianza_edad <- var(mi_data_frame$edad)
varianza_ingresos <- var(mi_data_frame$ingresos)
desviacion_edad <- sd(mi_data_frame$edad)
desviacion_ingresos <- sd(mi_data_frame$ingresos)

print(paste("Varianza de edad:", varianza_edad))
## [1] "Varianza de edad: 32.6666666666667"
print(paste("Varianza de ingresos:", varianza_ingresos))
## [1] "Varianza de ingresos: 122916666.666667"
print(paste("Desviación estándar de edad:", desviacion_edad))
## [1] "Desviación estándar de edad: 5.71547606649408"
print(paste("Desviación estándar de ingresos:", desviacion_ingresos))
## [1] "Desviación estándar de ingresos: 11086.7789130417"

Forma de los datos.

  1. Histograma:

Un histograma es una representación gráfica de la distribución de frecuencia de los datos.

hist(mi_data_frame$edad, main = "Histograma de Edades", xlab = "Edad", ylab = "Frecuencia")

  1. Diagrama de caja:

Un diagrama de caja proporciona una forma visual de resumir la distribución de los datos a través de sus cuartiles.

boxplot(mi_data_frame$ingresos, main = "Diagrama de Caja de Ingresos", ylab = "Ingresos")

Este código te dará el rango, la varianza y la desviación estándar de las variables, además de gráficos que representan la distribución de los datos de edad e ingresos. Estas medidas y gráficos te ayudarán a tener una comprensión más clara de la dispersión y la forma de los datos en tu conjunto de datos.

Tabla de distribucion de frecuencia:

Puedes utilizar la función table() en R para contar la frecuencia de cada valor en una variable categórica y la función cut() para agrupar una variable numérica en intervalos o clases al crear una tabla de distribución de frecuencias.

Supongamos que queremos crear una tabla de distribución de frecuencias para la variable “edad”.

  • Paso 1: Crear intervalos o clases (si es necesario).

Si tienes datos numéricos y deseas agruparlos en intervalos o clases para crear una tabla de distribución de frecuencias, puedes emplear la función cut() para establecer los intervalos y asignarles etiquetas. Por ejemplo, aquí agrupamos las edades en intervalos de 10 años:

mi_data_frame$grupo_edad <- cut(mi_data_frame$edad, breaks = seq(20, 40, by = 10), labels = c("20-29", "30-39"))
  • Paso 2: Calcular la Tabla de Distribución de Frecuencias.

Una vez que tienes tus datos agrupados (o si ya son categóricos), puedes usar la función table() para contar la frecuencia de cada categoría. Por ejemplo, para la variable “grupo_edad”:

tabla_frecuencia_edad <- table(mi_data_frame$grupo_edad)
print("Tabla de Distribución de Frecuencias - Edad:")
## [1] "Tabla de Distribución de Frecuencias - Edad:"
print(tabla_frecuencia_edad)
## 
## 20-29 30-39 
##     3     1

Análisis descriptivo a base de datos de una URL.

Lo primero que debemos hacer es cargar la base de datos de la siguiente forma:

url<- "https://raw.githubusercontent.com/fhernanb/datos/master/babies.txt"
data_url<- read.table(url, header = TRUE, sep = "\t")

Luego de esos si podemos empezar con el análisis descriptivo de la misma.

data_completa <- na.omit(data_url)
data_completa <- as.data.frame(data_completa)
data_completa_numerica <- data_completa[, sapply(data_completa, is.numeric)]
nombres_numericos <- names(data_completa_numerica)
medidas_descriptivas <- data.frame(
  Variable = nombres_numericos,
  Media = colMeans(data_completa_numerica),
  Mediana = apply(data_completa_numerica, 2, median),
  Desviacion_Estandar = apply(data_completa_numerica, 2, sd),
  Minimo = apply(data_completa_numerica, 2, min),
  Maximo = apply(data_completa_numerica, 2, max),
  Asimetria = apply(data_completa_numerica, 2, skewness),
  Curtosis = apply(data_completa_numerica, 2, kurtosis)
)
medidas_descriptivas
##            Variable     Media Mediana Desviacion_Estandar Minimo Maximo
## bwt             bwt 119.46252     120           18.328671     55    176
## gestation gestation 279.10136     280           16.010305    148    353
## age             age  27.22828      26            5.817839     15     45
## height       height  64.04940      64            2.526102     53     72
## weight       weight 128.47871     125           20.734282     87    250
##            Asimetria   Curtosis
## bwt       -0.1330402  0.4285111
## gestation -0.8490807  6.7395891
## age        0.5964838 -0.3071539
## height    -0.1009031  0.1867888
## weight     1.2097389  2.7122605
distribucion_frecuencia <- lapply(data_completa_numerica, function(x) table(cut(x, breaks = 10)))
names(distribucion_frecuencia) <- nombres_numericos
distribucion_frecuencia
## $bwt
## 
## (54.9,67.1] (67.1,79.2] (79.2,91.3]  (91.3,103]   (103,116]   (116,128] 
##           6          20          52         142         247         325 
##   (128,140]   (140,152]   (152,164]   (164,176] 
##         237          98          36          11 
## 
## $gestation
## 
## (148,168] (168,189] (189,210] (210,230] (230,250] (250,271] (271,292] (292,312] 
##         1         1         1         6        47       225       700       168 
## (312,332] (332,353] 
##        22         3 
## 
## $age
## 
## (15,18] (18,21] (21,24] (24,27] (27,30] (30,33] (33,36] (36,39] (39,42] (42,45] 
##      23     171     250     237     186     119      84      67      29       8 
## 
## $height
## 
##   (53,54.9] (54.9,56.8] (56.8,58.7] (58.7,60.6] (60.6,62.5] (62.5,64.4] 
##           2           1          11          78         226         340 
## (64.4,66.3] (66.3,68.2] (68.2,70.1]   (70.1,72] 
##         324         154          32           6 
## 
## $weight
## 
## (86.8,103]  (103,120]  (120,136]  (136,152]  (152,168]  (168,185]  (185,201] 
##         84        327        435        200         69         36         14 
##  (201,217]  (217,234]  (234,250] 
##          7          1          1