# naver search confirm # markdown number and equation R 전처리 최강자 dplyr 패키지 //google adsense
본문 바로가기
R_데이터 분석 기술

R 전처리 최강자 dplyr 패키지

by 노마드분석가 2022. 3. 31.

1. 들어가며

본격적인 데이터 분석에 들어가기 전에 분석가의 요구와 필요에 맞게 데이터를 조작할 필요가 있다. 이런 과정을 데이터 전처리(data pre processing)이라고 하는데, R은 풍부한 기본 기능과 함수를 제공하지만 초보자들에게는 dplyr 패키지가 가장 직관적이고 배우기 쉽다. 따라서 R의 기본 기능보다 먼저 dplyr 패키지를 활용법을 학습하는 것을 강력하게 권장한다. 아울러 SQL 문법과도 비슷해 개발자 출신 분석가들은 더 익숙할 수도 있다. 

 

2. dplyr 패키지의 주요 기능

  • filter : 데이터 프레임에서 필요한 행(row)만 추출하는 기능
  • select : 데이터 프레임에서 필요한 열(column)만 추출하는 기능
  • arrange : 데이터 프레임을 기준 열(column)에 맞춰 정렬하는 기능
  • rename : 데이터 프레임의 변수명 변경
  • mutate : 데이터 프레임의 여러 변수를 조합하여 새로운 변수(파생변수) 생성하는 기능

위의 5가지 기능은 데이터 분석 과정에서 정말 자주 쓰이는 기능이므로 5가지 기능만 제대로 익혀둬도 R 데이터 전처리에 상당한 자신감을 갖게 될 것이다. 그럼 하나씩 예제를 따라가 보자. 

 

3. filter

기본 문법은 아래와 같다. 

filter(데이터프레임, 추출할 행 데이터의 조건)

iris 데이터에서 Petal.Width 변수 값이 0.3 보다 큰 값을 가지는 행 데이터만 추출한 경우다. 

library(dplyr)
filter_test = filter(iris, Petal.Width > 0.3) 
head(filter_test)

 

※ 만약 추출하는 조건이 복수일 때는 & 또는 | 연산자로 확장하면 된다. 아래는 두 조건을 모두 만족하는 경우다. 

library(dplyr)
filter_test = filter(iris, Petal.Width > 0.3 & Sepal.Width > 3.3)
head(filter_test)

4. select

기본 문법은 아래와 같다. 

select(데이터프레임, 추출할 열)

 

iris 데이터에서 Petal.Width 변수 열만 추출한 경우다. 

 

library(dplyr)
select_test = select(iris, Petal.Width)
head(select_test)

 

※ 추출하는 열이 복수일 때는 c로 열 이름을 나열하면 된다. 

 

library(dplyr)
select_test = select(iris, c(Petal.Width,Sepal.Width))
head(select_test)

 

※ 반대로 특정 열을 제외한 열만 추출하는 경우는 마이너스(-) 기호를 붙이면 된다. 

 

library(dplyr)
select_test = select(iris, -c(Petal.Width,Sepal.Width))
head(select_test)

 

5. arrange

기본 문법은 아래와 같다. 

arrange(데이터프레임, 정렬 기준 열)

Sepal.Width 변수 기준으로 정렬하는 경우다. 기본적으로 오름차순이다.

 

library(dplyr)
arrange_test = arrange(iris, Sepal.Width)
head(arrange_test)

 

결과는 아래와 같다. 내림차순으로 변경하려면 "arrange(iris, desc(Sepal.Width))"로 바꿔준다.

 

 

※ 복수의 열 기준으로 정렬을 한다면 우선 순위대로 열 이름을 나열하면 된다. 

 

library(dplyr)
arrange_test = arrange(iris, Species, Sepal.Width)
head(arrange_test)

결과를 보면 첫 번째로 Species 기준으로 정렬하고 같은 Species 내에서 다시 두 번째로 Sepal.Width 기준으로 정렬하는 것을 알 수 있다.

6. rename

기본 문법은 다음과 같다

rename(데이터프레임, 새 이름 = 이전 이름)

Species 변수 이름을 "구분"으로 바꿔 보자. 코드를 실행하면 변수 명이 바뀐 것을 알 수 있다. 여러 변수명을 바꾸고 싶으면 컴머(,)로 조건을 계속 붙이면 된다. 

 

library(dplyr)
rename_test = rename(iris, 구분 = Species)
head(rename_test)

 

7. mutate

기본 문법은 다음과 같다.

 

mutate(데이터프레임, 새로 만들어질 변수(파생변수) = 기존변수와 기존변수의 연산)

기존 변수인 Sepal.Length와 Sepal.Width를 더해 새로운 "파생 변수"를 만드는 경우다

 

library(dplyr)
mutate_test = mutate(iris, 파생변수 = Sepal.Length + Sepal.Width)
head(mutate_test)

 

아래 결과를 보면 맨 오른쪽에 파생 변수가 만들어진 것을 볼 수 있다. 

 

반응형

댓글