es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La variable categórica se divide en 2 columnas, ¿cómo se puede mutar el marco de datos para que la variable categórica sea una sola columna?

Tengo los siguientes datos:

data <- data.frame(Month = c("Sep", "Oct", "Nov"),
                   Year = c(2021, 2021, 2021),
                   Active = c(20, 15, 29),
                   Inactive = c(40, 32, 20))

Las columnas “Activo” e “Inactivo” son contadores, pero como estoy intentando hacer algunos gráficos, es difícil trabajar con ellas. Mi salida deseada sería combinar las columnas en una nueva que muestre lo siguiente. “Estatus” sería la nueva columna creada.

Mes  |Año |Estatus
Sep  |2021|Activo: 20, Inactivo: 40
Oct  |2021|Activo: 15, Inactivo: 32
Nov  |2021|Activo: 29, Inactivo: 20
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para combinar las columnas ‘Active’ e ‘Inactive’ del dataframe ‘data’ en una nueva columna llamada ‘Status’, podemos utilizar la librería dplyr del paquete tidyverse. Utilizaremos las funciones pivot_longer() y mutate() para reformatear y agregar una nueva columna a los datos, respectivamente. El código para lograr la salida deseada es el siguiente:

    library(tidyverse)
    
    data <- data %>% 
      pivot_longer(cols = c(Active, Inactive), names_to = "Status", values_to = "Count") %>% 
      mutate(Status = if_else(Status == "Active", "Active", "Inactive"))
    
    

    Explicación:

    • La función pivot_longer() se utiliza para reformatear los datos en formato largo con ‘Status’ como nueva columna, con dos valores diferentes: “Active” e “Inactive”.
    • La función mutate() se utiliza para cambiar los valores en la columna ‘Status’ de acuerdo con la función if_else().

    El dataframe resultante tendrá la nueva columna ‘Status’ con los valores combinados de las columnas ‘Active’ e ‘Inactive’.

Comments are closed.