How to convert data frame values to their rank in R?

R ProgrammingServer Side ProgrammingProgramming

To convert data frame values to their rank in R, we can follow the below steps −

  • First of all, create a data frame.
  • Then, find the rank of each value using rank function with lapply.

Create the data frame

Let's create a data frame as shown below −

 Live Demo

> x1<-rnorm(20)
> y1<-rnorm(20)
> df<-data.frame(x1,y1)
> df

On executing, the above script generates the below output(this output will vary on your system due to randomization) −

           x1          y1
1  -0.9045608  1.95315551
2  -1.6222122 -1.19880638
3   0.8618855 -0.33643175
4  -0.3547085 -0.18097356
5  -0.3043621 -0.60342210
6   0.5606001 -0.83618995
7  -1.1752752 -0.46651702
8   0.2009474 -0.39482238
9   0.3595199 -0.59964119
10 -0.6007706 -0.01499288
11  0.1972236  1.44063062
12  1.0988526  0.17336280
13  1.0016738  2.27343055
14  2.6411272 -0.21273651
15 -1.1907730  0.88769339
16  1.0993620  1.57416767
17 -0.6732082  2.44837538
18  2.7868490 -0.46566411
19  0.9185654 -1.51994397
20 -1.2386102  1.34563437

Convert data frame values into their ranks

Using rank function with lapply function to find the rank of each value in the data frame df −

> df[]<-lapply(-df,rank,ties.method="min")
> df

Output

   x1 y1
1  16  3
2  20 19
3  7  12
4  13 10
5  12 17
6  8  18
7  17 15
8  10 13
9  9  16
10 14  9
11 11  5
12 4   8
13 5   2
14 2  11
15 18  7
16 3   4
17 15  1
18 1  14
19 6  20
20 19  6
raja
Published on 02-Aug-2021 12:47:00
Advertisements