- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to convert the data type of all columns from integer to factor in R?
To convert the data type of all columns from integer to factor, we can use lapply function with factor function.
For example, if we have a data frame called df which has all integer columns then we can use the below given command to convert all columns data type to factor −
df<-data.frame(lapply(df,factor))
Example 1
Following snippet creates a sample data frame −
x1<-rpois(20,1) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1
The following dataframe is created −
x1 x2 1 1 4 2 3 0 3 0 1 4 1 1 5 1 2 6 1 1 7 1 2 8 3 2 9 2 3 10 3 5 11 1 4 12 0 1 13 2 0 14 2 2 15 0 1 16 3 0 17 0 2 18 0 3 19 1 1 20 0 3
To convert the data type of all columns from integer to factor, add the following code to the above snippet −
x1<-rpois(20,1) x2<-rpois(20,2) df1<-data.frame(x1,x2) str(df1)
Output
If you execute all the above given snippets as a single program, it generates the following output −
'data.frame': 20 obs. of 2 variables: $ x1: int 1 3 0 1 1 1 1 3 2 3 ... $ x2: int 4 0 1 1 2 1 2 2 3 5 ...
To convert data type of columns in df1 to factor, add the following code to the above snippet −
x1<-rpois(20,1) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1<-data.frame(lapply(df1,factor)) str(df1)
Outpu
If you execute all the above given snippets as a single program, it generates the following output −
'data.frame': 20 obs. of 2 variables: $ x1: Factor w/ 4 levels "0","1","2","3": 2 4 1 2 2 2 2 4 3 4 ... $ x2: Factor w/ 6 levels "0","1","2","3",..: 5 1 2 2 3 2 3 3 4 6 ...
Example 2
Following snippet creates a sample data frame −
y1<-sample(0:1,20,replace=TRUE) y2<-sample(1:4,20,replace=TRUE) df2<-data.frame(y1,y2) df2
The following dataframe is created −
y1 y2 1 0 2 2 1 3 3 0 2 4 0 2 5 1 3 6 0 3 7 0 2 8 1 3 9 0 4 10 0 1 11 0 4 12 0 4 13 0 1 14 1 2 15 0 1 16 0 1 17 1 4 18 1 2 19 1 3 20 1 2
To convert the data type of all columns from integer to factor, add the following code to the above snippet −
y1<-sample(0:1,20,replace=TRUE) y2<-sample(1:4,20,replace=TRUE) df2<-data.frame(y1,y2) str(df2)
Output
If you execute all the above given snippets as a single program, it generates the following output −
'data.frame': 20 obs. of 2 variables: $ y1: int 0 1 0 0 1 0 0 1 0 0 ... $ y2: int 2 3 2 2 3 3 2 3 4 1 ...
To convert data type of columns in df2 to factor, add the following code to the above snippet −
y1<-sample(0:1,20,replace=TRUE) y2<-sample(1:4,20,replace=TRUE) df2<-data.frame(y1,y2) df2<-data.frame(lapply(df2,factor)) str(df2)
Output
If you execute all the above given snippets as a single program, it generates the following output −
'data.frame': 20 obs. of 2 variables: $ y1: Factor w/ 2 levels "0","1": 1 2 1 1 2 1 1 2 1 1 ... $ y2: Factor w/ 4 levels "1","2","3","4": 2 3 2 2 3 3 2 3 4 1 ...
To Continue Learning Please Login
Login with Google