Caso cuando declaración en R Dplyr Package usando la función case_when()

Este artículo se enfoca en la declaración case when en el lenguaje de programación R usando la función case_when() del paquete Dplyr.

Case when es un mecanismo mediante el cual podemos vectorizar un montón de declaraciones if y else if. En palabras simples, usando un caso cuando la declaración evaluamos una expresión de condición, y en base a eso tomamos decisiones. Por ejemplo, supongamos que queremos verificar si un candidato es elegible para emitir un voto. Para resolver este problema, podemos evaluar su edad y si es mayor de 18 años le permitiremos votar, de lo contrario no es elegible. 

Caso cuando en R:

R nos proporciona la función case_when() mediante la cual podemos implementar case when en R. Es equivalente a la declaración «case when» en SQL.

Sintaxis:

case_when(expresión)

 Aquí, 

  • expresión: Representa una expresión de condición

Método 1: Cree una nueva variable después de ejecutar la instrucción case when y usar la función mutar:

La función de mutación en R se usa para agregar variables recién creadas y también conserva las variables existentes. 

Ejemplo:

En este ejemplo, estamos creando un marco de datos que contiene marcas de automóviles, nombres, precios e impuestos. Ahora, con la ayuda de la función mutate(), estamos creando una columna adicional (Price_Status) que almacenará literales de string: alto, promedio y bajo después de evaluar el precio utilizado dentro de la función case_when().  

R

# Creating a new variable using case_when() and mutate() function
  
# Import the library
library(dplyr)
  
# Creating a dataframe
data_frame = data.frame(Brand=c("Maruti Suzuki", "Tata Motors",
                                "Mahindra", "Mahindra", "Maruti Suzuki"),
                        Car=c("Swift", "Nexon", "Thar", "Scorpio", "WagonR"),
                        Price=c(400000, 1000000, 500000, 1200000, 900000),
                        Tax=c(2000, 4000, 2500, 5000, 3500))
  
# Using case_when() to create new variable
data_frame % > % mutate(Price_status=case_when(Price >= 500000 & Price <= 900000 ~ "Average", Price > 900000 ~ "High", TRUE ~ "Low"))

Producción:

Método 2: Manejo de NA usando Case when declaración

Mire la columna Precio del marco de datos que hemos creado arriba una vez más. Algunos autos tienen un valor de precio igual a NA. Al aplicar la función case_when(), esto debe manejarse con cuidado. R nos proporciona la función is.na() mediante la cual podemos manejar valores na.

Ejemplo:

En este ejemplo, estamos creando un marco de datos que contiene marcas de automóviles, nombres, precios e impuestos. Ahora, con la ayuda de la función mutate(), estamos creando una columna adicional (Price_Status) que almacenará literales de string: alto, promedio y bajo después de evaluar el precio utilizado dentro de la función case_when(). Tenga en cuenta que para los automóviles que tienen el precio igual a NA, estamos agregando «NIL», en la posición correspondiente de la columna Price_Status.

R

# Creating a new variable using case_when() and mutate() function
# and handling unwanted values
  
# Import the library
library(dplyr)
  
data_frame = data.frame(Brand=c("Maruti Suzuki", "Tata Motors",
                                "Mahindra", "Mahindra", "Maruti Suzuki"),
                        Car=c("Swift", "Nexon", "Thar", "Scorpio", "WagonR"),
                        Price=c(400000, 1000000, 500000, 1200000, NA),
                        Tax=c(2000, 4000, 2500, 5000, 3500))
  
  
# Case_when() to create new variable (or column) with NIL
data_frame % > % mutate(Price_band=case_when(is.na(Price) ~ "NIL", Price >= 500000 & Price <= 900000   ~ "Average", Price > 900000 ~ "High", TRUE ~ "Low"))

Producción:

Método 3: usar la declaración de cambio en R

R nos permite usar sapply() con una declaración de cambio para construir una nueva variable que puede existir como una columna en el marco de datos.   

Ejemplo:

En este ejemplo, hemos creado una columna adicional con el nombre «Vehicle_Type», estamos usando la función sapply() con una declaración de cambio y para las marcas respectivas, estamos marcando los valores de en la posición correspondiente de la columna Vehicle_Type como «Coche».

R

# R program using case_when through sapply() function
  
# Import the library
library(dplyr)
  
# Creating a dataframe
data_frame = data.frame(Brand = c("Maruti Suzuki","Tata Motors",
                                  "Mahindra","Mahindra", "Maruti Suzuki"),
Car = c("Swift","Nexon","Thar", "Scorpio", "WagonR"),
Price = c(400000,1000000,500000,1200000,NA),
Tax = c(2000,4000,2500,5000,3500))
  
# Case_when() to create new variable
data_frame$Vehicle_Type <- sapply(data_frame$Brand, switch, "Tata Motors"='Car', 
                                  "Mahindra"='Car', "Maruti Suzuki" = 'Car')
  
data_frame

Producción:

Método 4: Usar case_when en vector

R también proporciona la posibilidad de usar case_when para manipular un vector.

Ejemplo:

Considere el siguiente código fuente. En este ejemplo, primero verificamos si el valor actual en el vector es divisible por 4, y si es así, reemplazamos los múltiplos de 4 con la string «Sí».   

Ejemplo:

R

# R program using case_when() function to manipulate a vector
  
# Importing library
library(dplyr)
  
# Creating a vector
vector <- seq(2, 20, by = 2)
  
# Using case_when() function
case_when(
    
  # If the value is divisible by 4 
  # then replace it with "Yes"
  vector %% 4 == 0 ~ "Yes",
  TRUE ~ as.character(vector)
)

Producción:

 Usando case_when en vector

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *