Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자입니다

섹션 9. Chapter 09 dplyr 패키지 (Youtube HelloJany) 본문

R

섹션 9. Chapter 09 dplyr 패키지 (Youtube HelloJany)

끈기JK 2022. 9. 8. 11:42

■ dplyr 패키지

데이터 가공 마법사

%>% 연산자로 각 조작을 연결할 수 있음

 

-데이터 추가 및 중복 데이터 제거

library(dplyr, warn.conflicts = FALSE)
mtcars

str(mtcars)  # 데이터의 구조 파악

filter(mtcars, cyl==4)  # 데이터에 필터 조건 설정
filter(mtcars, cyl==6 & mpg>20)

arrange(mtcars, wt, desc(hp))  # 정렬

head(arrange(mtcars, mpg, desc(wt)))  # 정렬 후 앞 5행 출력

select(mtcars, mpg, cyl, carb)
# 오류 나는 경우는 다른 패키지 함수 사용하기 때문
# dplyr::select(mtcars, mpg, cyl, carb) 로 dplyr 패키지 명시해서 사용할 것

head(select(mtcars, am, gear))

결과

> mtcars
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
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
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
> 
> str(mtcars)
'data.frame':	32 obs. of  11 variables:
 $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
 $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
 $ disp: num  160 160 108 258 360 ...
 $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
 $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
 $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
 $ qsec: num  16.5 17 18.6 19.4 17 ...
 $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
 $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
 $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
 $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
> 
> filter(mtcars, cyl==4)
                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
> filter(mtcars, cyl==6 & mpg>20)
                mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4      21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag  21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Hornet 4 Drive 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
> 
> arrange(mtcars, wt, desc(hp))
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
> 
> head(arrange(mtcars, mpg, desc(wt)))
                     mpg cyl disp  hp drat    wt  qsec vs am gear carb
Lincoln Continental 10.4   8  460 215 3.00 5.424 17.82  0  0    3    4
Cadillac Fleetwood  10.4   8  472 205 2.93 5.250 17.98  0  0    3    4
Camaro Z28          13.3   8  350 245 3.73 3.840 15.41  0  0    3    4
Duster 360          14.3   8  360 245 3.21 3.570 15.84  0  0    3    4
Chrysler Imperial   14.7   8  440 230 3.23 5.345 17.42  0  0    3    4
Maserati Bora       15.0   8  301 335 3.54 3.570 14.60  0  1    5    8
> 
> select(mtcars, mpg, cyl, carb)  # 오류 날 시 다른 패키지 함수 사용하는 것. dplyr::select(mtcars, mpg, cyl, carb) 로 dplyr 패키지 명시해서 사용할 것
                     mpg cyl carb
Mazda RX4           21.0   6    4
Mazda RX4 Wag       21.0   6    4
Datsun 710          22.8   4    1
Hornet 4 Drive      21.4   6    1
Hornet Sportabout   18.7   8    2
Valiant             18.1   6    1
Duster 360          14.3   8    4
Merc 240D           24.4   4    2
Merc 230            22.8   4    2
Merc 280            19.2   6    4
Merc 280C           17.8   6    4
Merc 450SE          16.4   8    3
Merc 450SL          17.3   8    3
Merc 450SLC         15.2   8    3
Cadillac Fleetwood  10.4   8    4
Lincoln Continental 10.4   8    4
Chrysler Imperial   14.7   8    4
Fiat 128            32.4   4    1
Honda Civic         30.4   4    2
Toyota Corolla      33.9   4    1
Toyota Corona       21.5   4    1
Dodge Challenger    15.5   8    2
AMC Javelin         15.2   8    2
Camaro Z28          13.3   8    4
Pontiac Firebird    19.2   8    2
Fiat X1-9           27.3   4    1
Porsche 914-2       26.0   4    2
Lotus Europa        30.4   4    2
Ford Pantera L      15.8   8    4
Ferrari Dino        19.7   6    6
Maserati Bora       15.0   8    8
Volvo 142E          21.4   4    2
> 
> head(select(mtcars, am, gear))
                  am gear
Mazda RX4          1    4
Mazda RX4 Wag      1    4
Datsun 710         1    4
Hornet 4 Drive     0    3
Hornet Sportabout  0    3
Valiant            0    3

 

 

-데이터 추가 및 중복 제거

mutate(mtcars, year="1974")  # 변수명 : year를 새로 생성해 값 1974를 넣는다

mutate(mtcars, mpg_rank=rank(mpg))  # 변수명 : mpg_rank로 순위 매긴다

distinct(mtcars, cyl)  # 중복 제거

distinct(mtcars, cyl, gear)  # or 조건으로 중복 제거

결과

> mutate(mtcars, year="1974")  # 변수명 : year를 새로 생성해 값 1974를 넣는다
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb year
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 1974
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 1974
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 1974
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 1974
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 1974
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1 1974
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4 1974
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2 1974
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2 1974
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4 1974
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4 1974
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3 1974
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3 1974
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3 1974
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4 1974
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4 1974
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4 1974
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1 1974
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2 1974
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1 1974
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1 1974
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2 1974
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2 1974
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4 1974
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2 1974
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1 1974
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2 1974
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2 1974
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4 1974
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6 1974
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8 1974
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2 1974
> 
> mutate(mtcars, mpg_rank=rank(mpg))  # 변수명 : mpg_rank로 순위 매긴다
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb mpg_rank
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4     19.5
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4     19.5
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1     24.5
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1     21.5
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2     15.0
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1     14.0
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4      4.0
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2     26.0
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2     24.5
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4     16.5
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4     13.0
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3     11.0
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3     12.0
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3      7.5
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4      1.5
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4      1.5
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4      5.0
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1     31.0
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2     29.5
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1     32.0
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1     23.0
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2      9.0
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2      7.5
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4      3.0
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2     16.5
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1     28.0
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2     27.0
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2     29.5
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4     10.0
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6     18.0
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8      6.0
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2     21.5
> 
> distinct(mtcars, cyl)  # 중복 제거
                  cyl
Mazda RX4           6
Datsun 710          4
Hornet Sportabout   8
> 
> distinct(mtcars, cyl, gear)  # or 조건으로 중복 제거
                  cyl gear
Mazda RX4           6    4
Datsun 710          4    4
Hornet 4 Drive      6    3
Hornet Sportabout   8    3
Toyota Corona       4    3
Porsche 914-2       4    5
Ford Pantera L      8    5
Ferrari Dino        6    5

 

 

-데이터 요약 및 샘플 추출

summarise(mtcars, cyl_mean=mean(cyl), cyl_min=min(cyl), cyl_max=max(cyl))

gr_cyl <- group_by(mtcars, cyl)  # mtcars 데이터 셋을 cyl 기준으로 group_by
summarise(gr_cyl, n())  # gr_cyl 데이터 셋에서 cyl 데이터 별 n() : 빈도수
summarise(gr_cyl, n(), n_distinct(gear))  # gear 중복 값을 제외하고 cyl별 개수 요약

sample_n(mtcars, 10)  # 10개 샘플 추출
sample_frac(mtcars, 0.2)  # 20% 샘플 추출

결과

> summarise(mtcars, cyl_mean=mean(cyl), cyl_min=min(cyl), cyl_max=max(cyl))
  cyl_mean cyl_min cyl_max
1   6.1875       4       8
> gr_cyl <- group_by(mtcars, cyl)  # mtcars 데이터 셋을 cyl 기준으로 group_by
> summarise(gr_cyl, n())  # gr_cyl 데이터 셋에서 cyl 데이터 별 n() : 빈도수
# A tibble: 3 x 2
    cyl `n()`
  <dbl> <int>
1     4    11
2     6     7
3     8    14
> summarise(gr_cyl, n(), n_distinct(gear))  # gear 중복 값을 제외하고 cyl별 개수 요약
# A tibble: 3 x 3
    cyl `n()` `n_distinct(gear)`
  <dbl> <int>              <int>
1     4    11                  3
2     6     7                  3
3     8    14                  2
> sample_n(mtcars, 10)  # 10개 샘플 추출
                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Chrysler Imperial 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Maserati Bora     15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Datsun 710        22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Merc 280          19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Fiat X1-9         27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Volvo 142E        21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
Camaro Z28        13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Ford Pantera L    15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Lotus Europa      30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
> sample_frac(mtcars, 0.2)  # 20% 샘플 추출
               mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Datsun 710    22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Camaro Z28    13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Duster 360    14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Honda Civic   30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
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

 

 

-%>%(파이프) 연산자

불필요 변수를 생성하지 않아 좋다.

gr_cyl <- group_by(mtcars, cyl)
summarise(gr_cyl, n())
# group_by(mtcars, cyl) %>% summarize(n())
# mtcars %>% group_by(cyl) %>% summarize(n())

mutate(mtcars, mpg_rank=rank(mpg))
arrange(mp_rank, mpg_rank)
# mutate(mtcars, mpg_rank=rank(mpg)) %>% arrange(mpg_rank)
# mtcars %>% mutate(mpg_rank=rank(mpg)) %>% arrange(mpg_rank)