일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 데이터베이스
- enumerate
- __name__
- main
- SECCON
- 인자 전달
- 스키마 생성
- android
- Pay1oad
- select
- ADB
- sys
- CodeEngn
- RPS
- Android 디컴파일
- rps.apk
- Database
- Programming
- __main__
- 무결성 제약조건
- r
- ZIP
- 데이터 무결성
- db
- SQL
- 릴레이션 생성
- Python
- Android 서명
Archives
- Today
- Total
블로그
dplyr 패키지 활용하기 본문
dplyr패키지 설치하기
우선 dplyr
패키지를 사용하기 위해서는 설치를 해야한다.
library(dplyr) #dplyr설치
dplyr 패키지에 있는 함수 알아보기
많이 사용하는 함수들 종류
dplyr 함수 | 기능 |
---|---|
filter() | 행 추출 |
select() | 열 추출 |
arrnage() | 정렬 |
mutate() | 변수 추가 |
summarise() | 통계치 산출 |
group_by() | 집단별로 나누기 |
left_join() | 데이터 합치기(열) |
bind_rows() | 데이터 합치기(행) |
함수들을 소개할때에는"Doit R"
이라는 책에서 제공하는"csv_exam.csv"
데이터파일을 사용해서 진행하겠습니다.
exam <- read.csv("csv_exam.csv") #데이터 불러오기
filter()
행을 추출하는 함수
exam %>% filter(class == 1) #class의 값이 1인 행을 추출
id class math english science
1 1 1 50 98 50
2 2 1 60 97 60
3 3 1 45 86 78
4 4 1 30 98 58
select()
열을 추출하는 함수
exam %>% select(math)
math
1 50
2 60
3 45
4 30
arrange()
arrange()
함수의 디폴트값은 오름차순이고, 내림차순으로 사용하려면 arrange(desc())
로 사용해야합니다.
오름차순
점점 커지는 순서로 줄 세우기
exam %>% arrnage(math)
id class math english science
1 9 3 20 98 15
2 5 2 25 80 65
3 4 1 30 98 58
4 3 1 45 86 78
내림차순
점점 커지는 순서로 줄 세우기
exam %>% arrange(desc(math))
id class math english science
1 8 2 90 78 25
2 19 5 89 68 87
3 7 2 80 90 45
4 18 5 80 78 90
mutate()
파생변수 추가하기
exam %>% mutate(total = math + english + science)
#total이라는 변수를 추가하기
id class math english science total
1 1 1 50 98 50 198
2 2 1 60 97 60 217
3 3 1 45 86 78 209
4 4 1 30 98 58 186
group_by()
집단별로 나누기
group_by()
함수에는 범주형 변수만 들어갈 수 있다.
#범주형 변수의 예시#
성별, 제조사, 회사 ..
summarise()
요약하기
summarise()
함수에는 연속형 변수만 들어갈 수 있다.
#연속형 변수의 예시#
월급, 나이, 점수 ..
대부분의 분석에서는 group_by()
함수와 summarise()
함수를 같이 사용하기 때문에 같이 사용하는 예시를 들어보겠습니다.
exam %>%
group_by(class) %>% #클래스별로 나누기
summarise(mean_math = mean(math)) #클래스별 평균값 요약하기
dplyr 조합하기
mpg 데이터를 사용해서 회사별
SUV
자동차의 도시 및 고속도로 통합 연비 평균을 구해 내림차순으로 정렬하고, 1 ~ 5위까지 출력하기
mpg <- as.data.frame(ggplot2::mpg)
mpg %>%
group_by(manufacturer) %>% # 회사별로 분리
filter(class == "suv") %>% # suv 추출
mutate(tot = (cty+hwy)/2) %>% # 통합 연비 변수 생성
summarise(mean_tot = mean(tot)) %>% # 통합 연비 평균 산출
arrange(desc(mean_tot)) %>% # 내림차순 정렬
head(5) # 1 ~ 5위까지 출력
# A tibble: 5 x 2
manufacturer mean_tot
<chr> <dbl>
1 subaru 21.9
2 toyota 16.3
3 nissan 15.9
4 mercury 15.6
5 jeep 15.6
left_join()
가로로 합치기. 즉 기존 데이터에 변수를 추가하는 것
test1 <- data.frame(id = c(1,2,3,4,5),
midterm = c(60,80,70,90,85))
test2 <- data.frame(id = c(1,2,3,4,5),
final = c(60,80,70,90,85))
total <- left_join(test1, test2, by = "id")
total
id midterm final
1 1 60 60
2 2 80 80
3 3 70 70
4 4 90 90
5 5 85 85
bind_rows()
세로로 합치기. 즉 기존 데이터에 행을 추가하는 것
group_a <- data.frame(id = c(1,2,3,4,5),
test = c(60,80,70,90,85))
group_b <- data.frame(id = c(6,7,8,9,10),
test = c(70,83,65,95,80))
group_all <- bind_rows(group_a, group_b)
group_all
id test
1 1 60
2 2 80
3 3 70
4 4 90
5 5 85
6 6 70
7 7 83
8 8 65
9 9 95
10 10 80
출처
김영우, 쉽게 배우는 R 데이터 분석, 이지퍼블리싱, 2019
'Computer engineering > R' 카테고리의 다른 글
데이터 정제하기 - 이상치 (0) | 2019.04.11 |
---|---|
데이터 정제하기 - 결측치 (2) | 2019.04.11 |
분석 도전(쉽게 배우는 R데이터 분석 160p) (0) | 2019.04.04 |
분석 도전(쉽게 배우는 R데이터 분석 123p) (0) | 2019.03.29 |
데이터를 파악해보자 (0) | 2019.03.28 |
Comments