In R, you can convert multiple numeric variables to factor using

In this case, we are converting two variables 'Credit' and 'Balance' to factor variables.

**lapply**function. The lapply function is a part of apply family of functions. They perform multiple iterations (loops) in R. In R, categorical variables need to be set as factor variables. Some of the numeric variables which are categorical in nature need to be transformed to factor so that R treats them as a grouping variable.**Converting Numeric Variables to Factor****Using Column Index Numbers**

In this case, we are converting first, second, third and fifth numeric variables to factor variables.

**mydata**is a data frame.names <- c(1:3,5)

mydata[,names] <- lapply(mydata[,names] , factor)

str(mydata)

**2. Using Column Names**In this case, we are converting two variables 'Credit' and 'Balance' to factor variables.

names <- c('Credit' ,'Balance')

mydata[,names] <- lapply(mydata[,names] , factor)

str(mydata)

**3. Converting all variables**col_names <- names(mydata)

mydata[,col_names] <- lapply(mydata[,col_names] , factor)

**4. Converting all numeric variables**mydata[sapply(mydata, is.numeric)] <- lapply(mydata[sapply(mydata, is.numeric)], as.factor)

**5. Checking unique values in a variable and convert to factor only those variables having unique count less than 4**

col_names <- sapply(mydata, function(col) length(unique(col)) < 4)

mydata[ , col_names] <- lapply(mydata[ , col_names] , factor)

wow.... thank you so much for this. i've been searching for this all over the internet and finally found it here...

ReplyDeleteeven i

Deletethese do not work

ReplyDeleteThank you, it was what I was looking for!

ReplyDeleteI believe that in 5. the right code for col_names is:

ReplyDeletecol_names <- sapply(mydata,

function(col) {length(unique(col) < 4} )