- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
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
- Related Articles
- How to select data frame columns based on their class in R?
- How to subset row values based on columns name in R data frame?
- How to subset rows based on criterion of multiple numerical columns in R data frame?
- How to create a subset of an R data frame based on multiple columns?
- Find the mean of multiple columns based on multiple grouping columns in R data frame.
- How to select columns in R based on the string that matches with the column name using dplyr?
- How to subset an R data frame based on string match in two columns with OR condition?
- How to find the minimum for each row based on few columns in an R data frame?
- How to select the first and last row based on group column in an R data frame?
- How to select rows based on range of values of a column in an R data frame?
- How to find the sum of numerical columns based on the combination of values in\ncategorical columns in R data frame?
- How to select only numeric columns from an R data frame?
- How to select top rows of an R data frame based on groups of factor column?
- How can you select data from a table based on some criteria using MySQL in Python?
- How to find the unique rows based on some columns in R?
