데이터 전처리
- 데이터 전처리: 데이터 분석에 적합하도록 raw data를 가공하는 작업으로 분석 과정 중 가장 많은 시간이 소요되는 편
- 주로 사용하는 함수: dplyr의 함수
- ex) rename(), filter(), select(), arrange(), mutate(), summarise(), group_by(), left_join(), bind_rows()
- 주로 사용하는 함수: dplyr의 함수
filter 함수
- 조건에 부합하는 사례 추출에 사용
- %>% (파이프 연산자): 데이터프레임과 함수를 연결할 때 사용 (ctrl + shift + M)
-
//exam 데이터프레임에서 1반 학생만 추출 exam %>% filter(class==1)
-
exam 데이터 프레임을 활용한 filter 함수 실습
1. 1반, 2반, 3반 학생들의 수학시험 평균은 얼마인가?
#내 코드 (문제 잘못 이해함)
exam_1 <- exam %>% filter(class == 1)
mean(exam_1$math) //52.16667
exam_2 <- exam %>% filter(class == 2)
mean(exam_2$math) //60.625
exam_3 <- exam %>% filter(class == 3)
mean(exam_3$math) //53.83333
#교수님 코드
exam_123 <- exam %>% filter(class %in% c(1, 2, 3))
mean(exam_123$math)
2. 4반이 아닌 학생들 중에서 수학시험이 90점 이상이거나, 역사시험이 95점 이상인 학생들을 추출하여 새로운 데이터 프레임(exam_N4)을 만드시오.
#내 코드
exam_N4 <- exam %>% filter(class != 4 & (math >= 90 | history >= 95))
#교수님 코드
exam_N4 <- exam %>% filter(class != 4) %>% filter(math >= 90 | history >= 95)
3. 영어시험 성적이 상위 10%인 학생들만 추출하시오.
exam %>% filter(english >= quantile(english, probs = c(0.9)))
#영어 점수의 상위 90%를 보고 그 점수보다 높은 것만 filter
mpg 데이터 프레임을 활용한 filter 함수 실습
4. 배기량이 4 이하인 자동차의 고속도로 연비평균과 배기량이 5 이상인 자동차의 고속도로 연비평균을 비교하시오.
mpg_4 <- mpg %>% filter(displ <= 4)
mpg_5 <- mpg %>% filter(displ >= 5)
mean(mpg_4$highway) > mean(mpg_5$highway)
5. 아우디와 도요타의 도심연비 평균을 비교하시오.
mpg_audi <- mpg %>% filter(manufacturer == "audi")
mpg_toyota <- mpg %>% filter(manufacturer == 'toyota')
mean(mpg_audi$city) > mean(mpg_toyota$city)
6. 세 회사(쉐보레, 포드, 혼다 자동차)의 고속도로연비 평균을 구하시오.
mpg_cfh <- mpg %>% filter(manufacturer %in% c("chevrolet", "ford", "honda"))
mean(mpg_cfh$highway)
select 함수
- 원하는 변수를 추출할 때 사용
- 변수 여러 개 선택시 쉼표(,)로 연결
-
exam %>% select(class, math, english)
-
- 변수 제외 시 마이너스(-) 사용
-
exam %>% select(-address)
-
- 특정 단어 포함된 변수 추출: select(contains("특정단어"))
exam 데이터 프레임을 활용한 filter 함수 실습
7. 1반 학생들만을 대상으로 성별과 수학점수를 추출
exam %>% filter(class == 1) %>% select(gender, math)
mpg 데이터 프레임을 활용한 filter 함수 실습
8. mpg에서 class와 city 두 개 변수만을 추출해서 새로운 데이터 프레임(mpg_cc)을 만드시오.
mpg_cc <- mpg %>% select(class, city)
9. 위에서 만든 데이터 프레임에서 suv 자동차와 compact 자동차의 도시연비 평균을 비교하시오.
mpg_ccSUV <- mpg_cc %>% filter(class == "suv")
mpg_ccCOM <- mpg_cc %>% filter(class == "compact")
mean(mpg_ccSUV$city) > mean(mpg_ccCOM$city)
arrange 함수
- 계량척도로 측정된 변수에 대해 오름차순/내림차순 정렬할 때 사용
- 오름차순 정렬: arrange(A)
- 내림차순 정렬: arrange(desc(A))
- 기준치 2개
- arrange(A, -B) #A에 대해 오름차순 정렬 후, B를 기준으로 내림차순 정렬하기
10. 아우디 모델 중에서 고속도로 연비가 가장 높은 상위 3개 모델은?
#내 코드 (이전 실습 내용을 이어서 해서 filter 과정 생략함)
mpg_audi %>% arrange(desc(highway))
#교수님 코드
mpg %>% filter(manufacturer=="audi") %>% arrange(-highway) %>% head(3)
'Language > R' 카테고리의 다른 글
[R] 데이터 전처리: left_join, bind_rows 함수 (0) | 2021.10.15 |
---|---|
[R] 데이터 전처리: mutate, group_by, summarise 함수 (0) | 2021.10.10 |
[R] 데이터 분석 기초 - 실습 (0) | 2021.10.05 |
[R] 데이터 분석 기초 (0) | 2021.10.05 |
[R] 데이터 탐색 - 실습 (0) | 2021.09.20 |