- Trending Categories
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 sort a column of data.table object in ascending order using column name stored in a vector in R?
Sorting a column of data.table object can be done easily with column number but sorting with column name is different. If a column name is stored in a vector and we want to sort a column of data.table object in ascending order using this name then order function will be used with single and double square brackets as shown in the below examples.
Loading data.table package and creating a data.table object −
Example
library(data.table) x1<-rpois(20,1) x2<-rpois(20,5) DT1<-data.table(x1,x2) DT1
Output
x1 x2 1: 1 3 2: 1 6 3: 2 3 4: 0 7 5: 1 8 6: 0 5 7: 1 3 8: 0 4 9: 1 2 10: 0 6 11: 0 5 12: 0 4 13: 2 6 14: 0 6 15: 2 0 16: 0 2 17: 1 6 18: 0 6 19: 2 7 20: 2 2
Column_for_sorting<-"x2"
Sorting DT1 using Column_for_sorting −
Example
DT1[order(DT1[[Column_for_sorting]])]
Output
x1 x2 1: 2 0 2: 1 2 3: 0 2 4: 2 2 5: 1 3 6: 2 3 7: 1 3 8: 0 4 9: 0 4 10: 0 5 11: 0 5 12: 1 6 13: 0 6 14: 2 6 15: 0 6 16: 1 6 17: 0 6 18: 0 7 19: 2 7 20: 1 8
Example
y1<-rnorm(20) y2<-rnorm(20) DT2<-data.table(y1,y2) DT2
Output
y1 y2 1: 0.3499126 1.6988660 2: -0.6970935 -1.2961417 3: 0.1244235 1.1192189 4: -1.0639993 0.2504188 5: -0.5714189 0.9772097 6: 1.3096543 1.5397439 7: 0.1163726 -2.8518334 8: -1.2941302 0.6353213 9: -0.4853220 -0.2274419 10: -0.3999413 -0.4259027 11: 2.9027999 0.2589249 12: 1.6724920 -1.2572220 13: 0.8792422 -0.5715381 14: 1.3257716 1.4083895 15: -0.9301681 0.1565980 16: -1.3777834 0.3630332 17: 0.1585897 -1.7692727 18: -2.7972968 -0.3854796 19: -1.4035229 -0.9016175 20: 1.4411729 0.1969444
Column_for_sorting<-"y1"
Sorting DT2 using Column_for_sorting −
Example
DT2[order(DT2[[Column_for_sorting]])]
Output
y1 y2 1: -2.7972968 -0.3854796 2: -1.4035229 -0.9016175 3: -1.3777834 0.3630332 4: -1.2941302 0.6353213 5: -1.0639993 0.2504188 6: -0.9301681 0.1565980 7: -0.6970935 -1.2961417 8: -0.5714189 0.9772097 9: -0.4853220 -0.2274419 10: -0.3999413 -0.4259027 11: 0.1163726 -2.8518334 12: 0.1244235 1.1192189 13: 0.1585897 -1.7692727 14: 0.3499126 1.6988660 15: 0.8792422 -0.5715381 16: 1.3096543 1.5397439 17: 1.3257716 1.4083895 18: 1.4411729 0.1969444 19: 1.6724920 -1.2572220 20: 2.9027999 0.2589249
Advertisements