Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Transformación de Datos | Manipulación y Limpieza de Datos
Análisis de Datos con R

Transformación de Datos

Desliza para mostrar el menú

Transformación de datos como paso fundamental en la preparación de datos en bruto para el análisis. Consiste en modificar, agregar o recodificar variables para que los datos sean más significativos y estén listos para el análisis.

Creación de nuevas columnas

Transformación habitual para calcular nuevos indicadores a partir de columnas existentes. Por ejemplo, calcular el precio por kilómetro para evaluar la rentabilidad de un vehículo.

Base R

Creación de una nueva columna utilizando el operador $ para definir su nombre y asignar valores.

df$price_per_km <- df$selling_price / df$km_driven
head(df)

dplyr

Se pueden agregar nuevas columnas utilizando la función mutate(). Dentro de mutate(), se especifica el nombre de la nueva columna y se define cómo debe calcularse.

df <- df %>%
  mutate(price_per_km = selling_price / km_driven)

Conversión y transformación de datos numéricos basados en texto

En conjuntos de datos reales, la información numérica a menudo se almacena como texto combinado con caracteres no numéricos. Por ejemplo, los valores de potencia del motor pueden aparecer como "68 bhp", los cuales deben limpiarse y convertirse antes del análisis.

Base R

Se puede utilizar gsub() para eliminar texto no deseado y luego aplicar as.numeric() para convertir el resultado en números. Después de la conversión, se pueden realizar transformaciones adicionales, como convertir brake horsepower (bhp) a kilovatios.

df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457  # convert to kilowatts

dplyr

El mismo proceso puede simplificarse dentro de una llamada a mutate(). Es posible combinar el reemplazo de texto, la conversión de tipo y la creación de nuevas columnas en un solo paso, lo que hace que el código sea más limpio y fácil de leer.

df <- df %>%
  mutate(
    max_power = as.numeric(gsub(" bhp", "", max_power)),
    max_power_kw = max_power * 0.7457
  )

Categorización de datos

Se pueden crear nuevas variables categóricas agrupando valores continuos en categorías significativas. Por ejemplo, los automóviles pueden clasificarse en rangos de precio Bajo, Medio o Alto según su precio de venta.

Base R

Esto puede realizarse con sentencias ifelse() anidadas. Cada condición se verifica en orden y el valor se asigna en consecuencia.

df$price_category <- ifelse(df$selling_price < 300000, "Low",
                            ifelse(df$selling_price < 700000, "Medium", "High"))

dplyr

Puedes utilizar la función case_when() como reemplazo de las sentencias if-else anidadas. Esto permite escribir múltiples condiciones en un formato limpio y legible.

df <- df %>%
  mutate(price_category = case_when(
    selling_price < 300000 ~ "Low",
    selling_price < 700000 ~ "Medium",
    TRUE ~ "High"
  ))
question mark

¿Qué hace mutate() en dplyr?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 9

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Transformación de Datos

Transformación de datos como paso fundamental en la preparación de datos en bruto para el análisis. Consiste en modificar, agregar o recodificar variables para que los datos sean más significativos y estén listos para el análisis.

Creación de nuevas columnas

Transformación habitual para calcular nuevos indicadores a partir de columnas existentes. Por ejemplo, calcular el precio por kilómetro para evaluar la rentabilidad de un vehículo.

Base R

Creación de una nueva columna utilizando el operador $ para definir su nombre y asignar valores.

df$price_per_km <- df$selling_price / df$km_driven
head(df)

dplyr

Se pueden agregar nuevas columnas utilizando la función mutate(). Dentro de mutate(), se especifica el nombre de la nueva columna y se define cómo debe calcularse.

df <- df %>%
  mutate(price_per_km = selling_price / km_driven)

Conversión y transformación de datos numéricos basados en texto

En conjuntos de datos reales, la información numérica a menudo se almacena como texto combinado con caracteres no numéricos. Por ejemplo, los valores de potencia del motor pueden aparecer como "68 bhp", los cuales deben limpiarse y convertirse antes del análisis.

Base R

Se puede utilizar gsub() para eliminar texto no deseado y luego aplicar as.numeric() para convertir el resultado en números. Después de la conversión, se pueden realizar transformaciones adicionales, como convertir brake horsepower (bhp) a kilovatios.

df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457  # convert to kilowatts

dplyr

El mismo proceso puede simplificarse dentro de una llamada a mutate(). Es posible combinar el reemplazo de texto, la conversión de tipo y la creación de nuevas columnas en un solo paso, lo que hace que el código sea más limpio y fácil de leer.

df <- df %>%
  mutate(
    max_power = as.numeric(gsub(" bhp", "", max_power)),
    max_power_kw = max_power * 0.7457
  )

Categorización de datos

Se pueden crear nuevas variables categóricas agrupando valores continuos en categorías significativas. Por ejemplo, los automóviles pueden clasificarse en rangos de precio Bajo, Medio o Alto según su precio de venta.

Base R

Esto puede realizarse con sentencias ifelse() anidadas. Cada condición se verifica en orden y el valor se asigna en consecuencia.

df$price_category <- ifelse(df$selling_price < 300000, "Low",
                            ifelse(df$selling_price < 700000, "Medium", "High"))

dplyr

Puedes utilizar la función case_when() como reemplazo de las sentencias if-else anidadas. Esto permite escribir múltiples condiciones en un formato limpio y legible.

df <- df %>%
  mutate(price_category = case_when(
    selling_price < 300000 ~ "Low",
    selling_price < 700000 ~ "Medium",
    TRUE ~ "High"
  ))
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 9
some-alt