- 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 select data.table object columns based on their class in R?
To select data.table object columns based on their class in R, we can follow the below steps −
First of all, create a data.table object.
Then, use str function to check the structure of the object.
After that, use select_if function from dplyr package to select the columns based on their class.
Example 1
Create the data.table object
Let’s create a data.table object as shown below −
library(data.table) x1<-sample(LETTERS[1:4],25,replace=TRUE) x2<-rnorm(25) x3<-rpois(25,5) DT1<-data.table(x1,x2,x3) DT1
Output
On executing, the above script generates the below output(this output will vary on your system due to randomization) −
x1 x2 x3 1: D -1.03911797 6 2: C -0.18664587 3 3: D -1.36429362 3 4: A -2.26587126 8 5: B 0.10786571 3 6: C 0.01271455 4 7: D 1.33889909 8 8: C 2.24053400 9 9: B 1.45987567 9 10: B 0.16747607 7 11: C -0.39258915 3 12: A 0.22643666 7 13: A -0.19909780 7 14: D -1.37518544 7 15: D -1.47161101 4 16: C 0.95574993 7 17: B 0.86833240 5 18: A 0.24516224 5 19: C -1.25342994 6 20: A 1.46559041 2 21: C 0.34863015 2 22: D -0.33877737 5 23: B 0.26071352 4 24: D -0.61747246 4 25: A -0.35990471 7 x1 x2 x3
Check the structure of data.table object
Using str function to check the structure of the data.table object DT1 −
library(data.table) x1<-sample(LETTERS[1:4],25,replace=TRUE) x2<-rnorm(25) x3<-rpois(25,5) DT1<-data.table(x1,x2,x3) str(DT1)
Output
Classes ‘data.table’ and 'data.frame': 25 obs. of 3 variables: $ x1: chr "D" "C" "D" "A" ... $ x2: num -1.039 -0.187 -1.364 -2.266 0.108 ... $ x3: int 6 3 3 8 3 4 8 9 9 7 ... - attr(*, ".internal.selfref")=<externalptr>
Select columns based on their class
Using select_if function from dplyr package to select integer columns as shown below −
library(data.table) x1<-sample(LETTERS[1:4],25,replace=TRUE) x2<-rnorm(25) x3<-rpois(25,5) DT1<-data.table(x1,x2,x3) str(DT1) library(dplyr) DT1 %>% select_if(is.integer)
Output
x3 1: 6 2: 3 3: 3 4: 8 5: 3 6: 4 7: 8 8: 9 9: 9 10: 7 11: 3 12: 7 13: 7 14: 7 15: 4 16: 7 17: 5 18: 5 19: 6 20: 2 21: 2 22: 5 23: 4 24: 4 25: 7 x3
Example 2
Create the data.table object
Let’s create a data.table object as shown below −
library(data.table) y1<-sample(c(TRUE,FALSE),25,replace=TRUE) y2<-factor(sample(c("I","II","III"),25,replace=TRUE)) DT2<-data.table(y1,y2) DT2
Output
On executing, the above script generates the below output(this output will vary on your system due to randomization) −
y1 y2 1: TRUE III 2: FALSE III 3: TRUE I 4: FALSE II 5: FALSE III 6: FALSE I 7: TRUE II 8: FALSE II 9: TRUE II 10: FALSE III 11: TRUE I 12: TRUE I 13: TRUE II 14: FALSE II 15: TRUE I 16: FALSE III 17: FALSE I 18: FALSE II 19: TRUE II 20: FALSE II 21: TRUE III 22: TRUE I 23: TRUE I 24: TRUE II 25: FALSE III y1 y2
Select columns based on their class
Using select_if function from dplyr package to select logical columns as shown below −
library(data.table) y1<-sample(c(TRUE,FALSE),25,replace=TRUE) y2<-factor(sample(c("I","II","III"),25,replace=TRUE)) DT2<-data.table(y1,y2) library(dplyr) DT2 %>% select_if(is.logical)
Output
y1 1: TRUE 2: FALSE 3: TRUE 4: FALSE 5: FALSE 6: FALSE 7: TRUE 8: FALSE 9: TRUE 10: FALSE 11: TRUE 12: TRUE 13: TRUE 14: FALSE 15: TRUE 16: FALSE 17: FALSE 18: FALSE 19: TRUE 20: FALSE 21: TRUE 22: TRUE 23: TRUE 24: TRUE 25: FALSE y1