-
[R] dplyr 패키지로 데이터 전처리 하기(1)Data Analysis/R 2022. 12. 14. 13:00반응형
dplyr 패키지 : 데이터 전처리 작업에 가장 많이 사용
dplyr 주요함수
dplyr 함수 기능 filter() 행 추출 select() 열 (변수) 추출 arrange() 정렬 mutate() 변수 추가 summarise() 통계치 산출 group_by() 집단별로 나누기 left_join() 데이터 병합 (열) bind_rows() 데이터 병합 (행) 조건을 만족하는 데이터 추출
◼ filter() : 원하는 조건을 만족하는 데이터만 추출하고 싶을 때 사용하는 함수
#데이터 불러오기 data <- iris data head(data)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa
library(dplyr) data %>% filter(Sepal.Length == 5)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5 3.6 1.4 0.2 setosa 2 5 3.4 1.5 0.2 setosa 3 5 3.0 1.6 0.2 setosa 4 5 3.4 1.6 0.4 setosa 5 5 3.2 1.2 0.2 setosa 6 5 3.5 1.3 0.3 setosa 7 5 3.5 1.6 0.6 setosa 8 5 3.3 1.4 0.2 setosa 9 5 2.0 3.5 1.0 versicolor 10 5 2.3 3.3 1.0 versicolor
Sepal.Length 값이 5인 행을 추출한 결과이다.
== 은 같다 이고, 같지 않다를 표현하고 싶으면 != 를 작성하면 된다.
◼ 여러 조건 지정 : | , &
data %>% filter(Sepal.Length > 5 | Sepal.Width <= 1) #여러 조건
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 5.4 3.9 1.7 0.4 setosa 3 5.4 3.7 1.5 0.2 setosa 4 5.8 4.0 1.2 0.2 setosa 5 5.7 4.4 1.5 0.4 setosa (...생략...)
| 혹은 &로 조건을 연결해주면 여러개의 조건을 지정할 수 있다.
◼ 원소 여부 : %in%
data %>% filter(Sepal.Length %in% c(5.2, 5.6, 7.7))
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.2 3.5 1.5 0.2 setosa 2 5.2 3.4 1.4 0.2 setosa 3 5.2 4.1 1.5 0.1 setosa 4 5.2 2.7 3.9 1.4 versicolor 5 5.6 2.9 3.6 1.3 versicolor 6 5.6 3.0 4.5 1.5 versicolor 7 5.6 2.5 3.9 1.1 versicolor 8 5.6 3.0 4.1 1.3 versicolor 9 5.6 2.7 4.2 1.3 versicolor 10 7.7 3.8 6.7 2.2 virginica 11 7.7 2.6 6.9 2.3 virginica 12 5.6 2.8 4.9 2.0 virginica 13 7.7 2.8 6.7 2.0 virginica 14 7.7 3.0 6.1 2.3 virginica
%in%를 사용하면 코드작성이 훨씬 간결해진다.
연산자를 사용하여 조건을 지정하여 원하는 데이터 추출이 가능하다.
R에서 사용하는 연산자
논리 연산자 기능 산술 연산자 기능 < 작다 + 더하기 <= 작거나 같다 - 빼기 > 크다 * 곱하기 >= 크거나 같다 / 나누기 == 같다 ^ , ** 제곱 != 같지 않다 %/% 나눗셈의 목 | 또는 %% 나눗셈의 나머지 & 그리고 %in% 매칭 확인 필요 변수 추출
◼ select() : 데이터에 포함된 여러 변수들 중 일부 변수만 추출하고자 할 때 사용하는 함수
data %>% select(Species, Sepal.Length)
Species Sepal.Length 1 setosa 5.1 2 setosa 4.9 3 setosa 4.7 4 setosa 4.6 5 setosa 5.0
◼ 특정 변수만 제거
data %>% select(-Species)
Sepal.Length Sepal.Width Petal.Length Petal.Width 1 5.1 3.5 1.4 0.2 2 4.9 3.0 1.4 0.2 3 4.7 3.2 1.3 0.2 4 4.6 3.1 1.5 0.2 5 5.0 3.6 1.4 0.2
함수 조합하기
data %>% filter(Sepal.Length == 5.5) %>% select(Species)
Species 1 setosa 2 setosa 3 versicolor 4 versicolor 5 versicolor 6 versicolor 7 versicolor
◼ 일부만 출력 : head
#일부만 출력 data %>% filter(Sepal.Length == 5.5) %>% select(Species) %>% head(5)
Species 1 setosa 2 setosa 3 versicolor 4 versicolor 5 versicolor
순서대로 정렬
◼ 오름차순 정렬
data %>% arrange(Sepal.Length) %>% head
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 4.3 3.0 1.1 0.1 setosa 2 4.4 2.9 1.4 0.2 setosa 3 4.4 3.0 1.3 0.2 setosa 4 4.4 3.2 1.3 0.2 setosa 5 4.5 2.3 1.3 0.3 setosa 6 4.6 3.1 1.5 0.2 setosa
◼ 내림차순 정렬
#내림차순 정렬 data %>% arrange(desc(Sepal.Length)) %>% head
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 7.9 3.8 6.4 2.0 virginica 2 7.7 3.8 6.7 2.2 virginica 3 7.7 2.6 6.9 2.3 virginica 4 7.7 2.8 6.7 2.0 virginica 5 7.7 3.0 6.1 2.3 virginica 6 7.6 3.0 6.6 2.1 virginica
◼ 여러 정렬기준
data%>% arrange(Sepal.Length, Sepal.Width) %>% head
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 4.3 3.0 1.1 0.1 setosa 2 4.4 2.9 1.4 0.2 setosa 3 4.4 3.0 1.3 0.2 setosa 4 4.4 3.2 1.3 0.2 setosa 5 4.5 2.3 1.3 0.3 setosa 6 4.6 3.1 1.5 0.2 setosa
변수명을 나열하게되면 여러 개의 정렬 기준을 적용할 수 있다.
먼저, Sepal.Length를 기준으로 오름차순 정렬을 한 후 Sepal.Width를 기준으로 오름차순 정렬하게 된다.
반응형'Data Analysis > R' 카테고리의 다른 글
[R] 회귀분석 실습 - 상관분석 (0) 2023.01.06 [R] R Markdown으로 분석 보고서 만들기 (0) 2022.12.30 [R] plotly 패키지로 인터랙티브 그래프 만들기 (0) 2022.12.29 [R] dplyr 패키지로 데이터 전처리 하기 (2) (1) 2022.12.15 R Studio에서 단축키 확인 및 변경하기 (0) 2022.12.13