데이터 분석/R 데이터 처리 & 분석

[R데이터분석] dplyr 패키지를 활용한 데이터전처리(3)(arrange,mutate)

love R 2020. 2. 7. 03:52
반응형

 

 

이번에 소개할 함수는 arrange, mutate  함수입니다.

arrange 함수는 데이터를 정렬할 때 쓰이며, mutate는 새로운 변수를 추가할 때 이용합니다.

 

R 기본 내장 데이터인 mtcars 에 적용해보겠습니다. 이 데이터는 1974 년 Motor Trend US 잡지에서 발췌되었으며 연료 소비량과 자동차 디자인 및 성능에 관한 자동차의 10 가지 특징과 32 대의 자동차 (1973-74 모델)로 구성되어 있습니다. 이 데이터셋은 32개의 11개의 숫자형 변수로 이루어져 있습니다.

 

 

만약 연비 순으로 정렬하여 자동차의 리스트를 보고 싶다면 다음과 같이 입력합니다.

mtcars %>% arrange(mpg) 

 

mpg 순으로 정렬을 하고나니 행별로 이름이 붙어있었던 게 숫자로 바뀌었습니다!!

 

 

이 문제를 해결하기 위해서 tibble 패키지에 있는 rownames_to_column() 함수를 이용합니다.

 mtcars  %>% tibble::rownames_to_column('mtcars') %>% arrange(mpg)

 

 

 

1974 년 Motor Trend US 잡지에서 발췌된 자동차 데이터에서는 Cadillac Fleetwood와 Lincoln Continental 이 가장 낮았네요. 만약 연비가 높은 순으로 보고싶다면 arrange(desc(mpg)) 를 입력합니다.

 

이번엔 mutate 함수를 이용하여 열을 추가해보겠습니다. 위에서 보았듯이 arrange 함수를 적용하니 자동차 명이 사라졌었는데 이 부분을 mutate함수를 이용해 자동차 명에 대한 열을 새로 생성하겠습니다. 

 

test1 <- mtcars %>% arrange(mpg) %>% mutate(car_name = row.names(mtcars))

test1

 

 

결과가 나오긴했지만 car_name 이라는 열이 맨 뒤에 추가되었기 때문에 보기에는 불편합니다. 이 전에 포스팅했던 select함수를 쓰겠습니다. select함수는 변수의 순서를 결정할 수도 있습니다. 먼저 car_name 이라는 변수를 가장 앞에 놓고싶기 때문에 select 함수의 첫 번째로서 car_name 을 입력하고 그 뒤에는 mpg부터 carb 변수를 지정한다는 의미에서 mpg:carb 를 입력합니다.

 

 

test2 <- test1 %>% select(car_name,mpg:carb)

test2 

 

 

 

 

mutate함수는 사칙연산을 통해 새로운 파생변수를 만들어낼 수도 있습니다. 예를 들어 자동차 무게(wt)에 대한 연비(mpg) 의 비율을 구해보면 다음과 같습니다.

 

test3 <- test2 %>% mutate(ratio = mpg/wt) 

test3

 

 

결과를 보니 끝에 ratio 라는 열이 추가되었네요. 값들을 보니 연비가 낮을수록 ratio가 낮다는 추측을 해볼 수 있을 것 같습니다.  그 뜻은 자동차 무게가 많이 나가는 것에 비해 연비의 효율이 떨어진다고 이해할 수 있습니다. 이렇게 새로운 파생변수를 생성하여 그 의미를 파악해볼 수도 있습니다.

 

dplyr 패키지의 arrange 와 mutate함수에 관해 다루었는데요

궁금한점이 있으면 아래 댓글로 남겨주세요!

 

반응형