'Get rank for every column using dplyr
I'm trying to get a rank for every column in a dataframe.
Ideal output (using mtcars as an example) would be as below but with the rank filled in for each column:
mpg cyl disp hp drat wt qsec vs am gear carb mpg_rank cyl_rank disp_rank ...
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
....
I can produce a rank for each column, but I can't get the output in the above format... that's where I'm struggling.
cols <- colnames(mtcars)
get_rank <- function(col){
df %>% mutate(rank=rank(.data[[col]]))
}
lapply(cols, get_rank)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
