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"
))
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla