## Pages

### How to modify data with IF Else conditions ### R Tutorial 4.0

It is very important to know how to apply logic while learning an programming. This article  covers "How to use of IF-Else conditions in R for performing logical operations". We will see how it is used  for making new variables and imputing missing values etc.

Let's consider an inbuilt SAS dataset for leaning IF-Else based logical operations. :

# We make a copy of inbuilt R data cars having two columns only speed and dist

cars_data = cars #  We will now work on copy dataset. Let's now create a new variable : pickup

cars_data\$pickup =  cars_data\$speed/ cars_data\$dist

#or we can first attach the dataset in temporary memory

attach(cars_data)
cars_data\$pickup =  speed / dist

### Let now learn the basic method of logical IF operation

Syntax :   ifelse(condition, "What if true", "What if false")

#Simplest ifelse :  Will create a column with two values

cars_data\$category = ifelse(pickup>1,"High","Low")

#Simplest nested ifelse : Will create a column with three values

cars_data\$category = ifelse(pickup>1 ,"High",ifelse(pickup>0.5,"Medium","Low"))

### A little Complex If-Else-IF operation using another inbuilt R dataset : iris

# Let's first create Data_1 as a copy of iris

Data_1 = iris
attach(Data_1)

# Microsoft Excel Style coding for nested IFs : Will create a column with 6 variants

Data_1\$category = ifelse(Species == "setosa" & Sepal.Length <5,"C-1",
ifelse(Species == "setosa" & Sepal.Length >= 5,"C-2",
ifelse(Species == "versicolor" & Sepal.Length < 6,"C-3",
ifelse(Species == "versicolor" & Sepal.Length >= 6,"C-4",
ifelse(Species == "virginica" & Sepal.Length < 7,"C-5",
ifelse(Species == "virginica" & Sepal.Length >= 7,"C-6","Other"))))))

### How to use the ifelse method for missing value imputation

# Let's first define a vector
xyz = c(11,12,NA,13,15)

#  To identify the position of missing value
which(is.na(xyz))

#  Summary function works even when the missing values are there
summary(xyz)

#  mean function, however, doesn't works when the missing values are there
mean(xyz)

#  but to make it work, we can use a simple trick
mean(xyz,na.rm = T)

# Now, let impute the missing value with a hard coded value
abc = ifelse(is.na(xyz),0,xyz)

# Now, let impute the missing value with a mean of non-missing values
pqr = ifelse(is.na(xyz),mean(xyz,na.rm = T),xyz)

Enjoy reading our other articles and stay tuned with us.

Kindly do provide your feedback in the 'Comments' Section and share as much as possible.