일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 네이버커넥트
- Sequential Model
- Convolution
- Beyond Linear Neural Networks
- 베이즈통계학
- 모각공
- 네이버커넥트재단
- 부스트캠프
- 부스트캠프 aitech3기
- convolution 역전파
- summarise( )
- mutate( )
- r
- col_names
- LinearNeuralNetwork
- JavaScript
- 정규표현식
- dplyr
- RNN
- aitech
- 역전파알고리즘
- regular expression
- Multi-Layer Perceptron
- Filter
- 자바스크립트
- regex
- NomadCoder
- group_by( )
- 부스트캠프aitech3기
- 생활코딩
- Today
- Total
clear_uncertainty
R - R언어 dplyr로 데이터 전처리하기 (filter( ), %>%, %in%) 본문
이번 포스트에서는 R언어로 데이터 전처리하는 방법에 대해 서술하겠습니다.
'데이터 전처리(Data Preprocessing)'은 분석에 적합하게 데이터를 가공하는 작업입니다. 일부를 추출하거나, 종류별로 나누거나 여러 데이터를 합치는 등 데이터를 자유롭게 가공할 수 있어야 목적에 맞게 분석할 수 있습니다.
dplyr은 데이터 전처리 작업에 가장 많이 사용되는 패키지입니다. dplyr의 대표적인 함수를 정리하면 아래와 같습니다.
dplyr 함수 | 기능 |
filter( ) | 행추출 |
select( ) | 열 추출 |
arrange( ) | 정렬 |
mutate( ) | 변수 추가 |
summarise( ) | 통계치 산출 |
group_by( ) | 집단별로 나누기 |
left_join( ) | 데이터 합치기(열) |
bind_rows( ) | 데이터 합치기(행) |
filter( )
먼저 filter( ) 함수에 대해 알아보겠습니다.
filter( ) 함수는 이름에서 유추할 수 있듯이 일부를 추출해 분석을 도와주는 함수입니다.
예시를 들어 설명학 위해 csv_exam 파일을 데이터프레임으로 만들겠습니다.
위의 데이터를 class 가 1인 데이터만 추출하고싶을 때 filter(class == 1)을 이용합니다.
dplyr 패키지는 %>% 기호를 이용해 함수들을 나열하는 방식으로 코드를 작성합니다.
위 코드는 exam을 출력하되 class가 1인 행만 추출하라는 조건이 지정됐습니다.
%>% 은 파이프 연산자라고 불립니다.
파이프 연산자는 체인 연산자(chain operator) 또는 줄여서 파이프라고도 부릅니다.
(참고로 %>%은 <cmd + shift + m> 단축키를 통해 빠르게 이용할 수 있습니다!)
물길을 연결하는 파이프처럼 데이터와 데이터를 연결하는 dplyr 패키지의 핵심 연산자입니다.
‘데이터를 전달한다’고 생각해도 됩니다. 즉, 앞서 연산된 결괏값이나 데이터를 다음으로 전달하는 역할을 하는 것이 파이프 연산자입니다.

예를 들어 결과 A를 다음으로 전달하면 이 데이터를 받아 작업 B를 할 수 있습니다.
파이프 연산자를 여러 개 사용하면, 복잡한 결과라도 연결 고리를 거쳐 정리하면서 뒤로 전달하여 원하는 형태로 만들 수 있습니다.
같은 방식으로 이번에는 class 가 1이 아닌 데이터를 추출해보겠습니다.
class 가 1이 아닌 2,3,4,5 class를 추출 할 수 있습니다.
만약 조건이 하나가 아닌 여러 조건을 충족하는 행을 추출하기 위해선 기호 &이 필요합니다
예를 들어 2반이면서 영어 점수가 80점 이상인 행을 추출해봅시다.
위처럼 &을 이용해 동시에 만족(= and)하는 행을 추출할 수 있습니다.
동시가 아닌 조건 중 하나만이라도 충족(= or)하는 행을 추출하기 위해선, 기호 | 이 필요합니다.
수학점수가 90점 이상이거나, 영어점수가 90점 이상이거나, 과학점수가 90점 이상인 행을 추출해봅시다.
3가지 조건 중 하나라도 충족하는, 즉 잘본 과목이 한 과목 이상인 학생을 |을 통해 위처럼 추출할 수 있습니다.
여러 조건을 %in% 기호를 통해 깔끔하게 코드를 작성할 수 있습니다.
mpg 데이터를 이용해 분석문제 해결
#1. displ이 4이하인 자동차와 5이싱인 자동차 중 어떤 자동차의 hwy가 평균적으로 높은지 분석
#2 "audi"와 "toyota" 중 어느 manufacturer의 cty가 평균적으로 더 높은지 분석
#3 "chevrolet", "ford", "honda" 자동차의 고속도로 연비 평균을 분석
출처
Do it 쉽게 배우는 R 데이터 분석 ...
18,000원
itempage3.auction.co.kr
모두의 R 데이터 분석: 2 파이프 연산자(%>%): 데이터 전달하기
더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.
thebook.io
'언어 > R' 카테고리의 다른 글
R - R언어 dplyr로 데이터 전처리하기 ( mutate( ), group_by( ), summarise( ) ) (0) | 2023.01.12 |
---|---|
R - R언어 dplyr 함수로 데이터 전처리 하기 (select( ) , arrange( ), desc( )) (0) | 2023.01.12 |
R - R언어로 파생변수만들기(조건문 ifelse, 중첩조건문 ifelse, hist, table, qplot) (0) | 2023.01.11 |
R - R언어로 데이터 파악하기 (head, tail, View, dim, str, summary) (0) | 2023.01.11 |
R - CSV, RDS 불러오기 + 저장하기 (read.csv, write.csv, saveRDS, readRDS) (0) | 2023.01.10 |