Handling NA using Case when statement
Look into the Price column of the data_frame that we have created above once again. Some cars have a price value equal to NA. While applying case_when() function, this must be handled carefully. R provides us is.na() function using which we can handle na values.
Example:
In this example, we are creating a data frame that holds car brands, names, prices, taxes. Now with the help of mutate() function, we are creating an additional column (Price_Status) that will store string literals: high, average, and low after evaluating the price used inside the case_when() function. Note that for cars having the price equal to NA we are adding “NIL”, at the corresponding position of the Price_Status column.
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" )) |
Output:
Case when statement in R Dplyr Package using case_when() Function
This article focuses upon the case when statement in the R programming language using the case_when() function from the Dplyr package.
Case when is a mechanism using which we can vectorize a bunch of if and else if statements. In simple words, using a case when statement we evaluate a condition expression, and based on that we make decisions. For example, suppose we want to check whether a candidate is eligible to cast a vote. To solve this problem, we can evaluate his age and if it is greater than 18 we will allow him to vote otherwise he is not eligible.