BIENVENIDO A LA 2da GUÍA DE RSTUDIO PARA ESTADÍSTICA INFERENCIAL

Aquí encontrarás todo lo relacionado con bases de datos, importación y preprocesamiento.

1 Dataframes (bases de datos)

Un dataframe es una estructura de datos en R similar a una tabla, donde las columnas representan variables y las filas representan observaciones.

1.1 Creación de Dataframes

Es posible crear un dataframe con la función data.frame().

#Vectores o listas
nombre = c("Ana", "Luis", "Carlos", "Sofia")
edad = c(23, 25, 30, 22)
ciudad = c("Bogota", "Medellin", "Cali", "Barranquilla")
ingresos = c(2500000, 3000000, 2800000, 2700000)



# Crear un dataframe manualmente
df <- data.frame(nombre,edad,ciudad,ingresos)
  
# Ver el dataframe
df

1.2 Acceso a los Datos

Para acceder a las columnas de un dataframe existen varias maneras

# Acceder a una columna específica
df$nombre
## [1] "Ana"    "Luis"   "Carlos" "Sofia"
# Acceder a una fila específica
df[2, ]
# Acceder a una celda específica
df[3, 2]
## [1] 30

1.3 Modificación de Dataframes

Es posible agregar, modificar o eliminar columnas y filas en un dataframe

Agregar una nueva columna

# Agregar una nueva columna
df$puntaje <- c(85, 90, 78, 88)
df

Modificar un valor

# Modificar un valor
df$ingresos[1] <- 2600000

Eliminar una columna

# Eliminar una columna
df$ciudad <- NULL
df

1.4 Filtrado de Datos

También, es posible filtrar filas que cumplen ciertas condiciones:

# Filtrar personas con ingresos mayores a 2.8 millones
subset(df, ingresos > 2800000)
# Filtrar personas con puntaje mayor a 80
df[df$puntaje > 80, ]

1.5 Ordenamiento de Dataframes

# Ordenar por edad
df_ordenado <- df[order(df$edad), ]
df_ordenado

1.6 Guardar Dataframes

Guardar un dataframe como un archivo CSV (Este es un formato muy común en el que se suelen encontrar las bases de datos):

# Guardar dataframe en un archivo CSV
write.csv(df, "datos.csv", row.names = FALSE)
help("write.csv")
## starting httpd help server ... done

1.7 Importar un Dataframe desde un archivo CSV

# Leer un archivo CSV
df_importado <- read.csv("datos.csv")
df_importado

Otra forma para importar datos, es a través de la ventana de archivos


También puedo importar datos directamente desde donde esté guardada la base de datos en el equipo (cuando se utiliza la versión Rstudio de escritorio) La línea de código sería la siguiente:

2 Pre procesamiento de una Base de Datos Preinstalada en R

R incluye varias bases de datos preinstaladas. En este ejemplo, usaremos mtcars, una base de datos con información sobre automóviles.

# Cargar la base de datos mtcars
data("mtcars")
datos <- mtcars
head(datos)# Ver las primeras filas

2.1 Exploración de Datos

Para ver las dimensiones del dataframe o el tamaño de mi base de datos:

# Dimensiones del dataframe
dim(datos)
## [1] 32 11

Ver los tipos de datos o variables

# Ver estructura de los datos
str(datos)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

Hacer un resumen estadístico (muy general). Esta es la primera impresión de todas las variables

# Resumen estadístico general
summary(datos)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000

2.2 Verificación y Manejo de Datos Faltantes

Verificar:

# Verificar valores faltantes
sum(is.na(datos))
## [1] 0

Eliminar:

# Si hubiera valores NA, podríamos eliminarlos con:
df <- na.omit(datos)

2.3 Eliminación de Columnas Innecesarias

Si algunas columnas no son relevantes para el análisis, es posible eliminarlas.

# Eliminar la columna 'carb'
datos
datos$carb <- NULL
head(datos)

2.4 Filtrado de Datos

Se pueden filtrar observaciones basadas en condiciones específicas.

# Filtrar autos con más de 20 millas por galón (mpg)
df_filtrado <- subset(datos, mpg > 20)
df_filtrado

2.5 Transformación de Datos

Podemos agregar columnas nuevas basadas en cálculos.

# Crear una nueva columna con consumo en km por litro
datos$km_per_l <- datos$mpg * 0.425144
head(datos)

2.6 Cambio de Tipo de Variable

Podemos convertir una variable numérica en categórica.

str(datos)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg     : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl     : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp    : num  160 160 108 258 360 ...
##  $ hp      : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat    : num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt      : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec    : num  16.5 17 18.6 19.4 17 ...
##  $ vs      : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am      : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear    : num  4 4 4 3 3 3 3 4 4 4 ...
##  $ km_per_l: num  8.93 8.93 9.69 9.1 7.95 ...
# Convertir la variable 'cyl' (cilindros) en factor
datos$cyl <- as.factor(datos$cyl)
# Ver estructura para confirmar el cambio
str(datos)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg     : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl     : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
##  $ disp    : num  160 160 108 258 360 ...
##  $ hp      : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat    : num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt      : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec    : num  16.5 17 18.6 19.4 17 ...
##  $ vs      : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am      : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear    : num  4 4 4 3 3 3 3 4 4 4 ...
##  $ km_per_l: num  8.93 8.93 9.69 9.1 7.95 ...

2.7 Ordenamiento de Datos

# Ordenar por caballos de fuerza (hp)
df_ordenado <- datos[order(datos$hp), ]
head(df_ordenado)

2.8 Actividades para practicar

  1. Crea un dataframe con datos de 5 amigos, incluyendo nombre, edad y ciudad.
  2. Filtra las personas mayores de 25 años.
  3. Agrega una nueva columna con su ocupación.
  4. Guarda el dataframe en un archivo CSV y vuelve a importarlo en R.

En la siguiente guía (número 3) podrás encontrar lo que necesitas saber para hacer tablas y gráficios en R