left_join 함수
- 기존 데이터 프레임에 새로운 데이터 프레임을 합칠 때 사용
- 두 데이터프레임에서 공통의 변수가 존재해야 함
- relocate 함수: 열의 위치를 바꿀 때 사용하는 함수
- (이동시킬변수명, 이동할 위치 = 변수명)
- 이동할 위치: .before / .after 두 가지 가능
- 변수명: 이동할 위치의 기준점
- (이동시킬변수명, 이동할 위치 = 변수명)
18-1. 연료별 가격 데이터 프레임(fuel_price) 만들기
fuel_price <- data.frame(fuel=c("CNG","diesel","ethanol","premium","regular"),fuel_price = c(2.35,2.38,2.11,2.76,2.22))
18-2. 공통변수인 fuel을 기준으로 mpg와 fuel_price 합치기
mpg <- left_join(mpg, fuel_price, by="fuel")
19-1. 구동방식별 가격 데이터 프레임(drv_price) 만들기
drv_price <- data.frame(driving=c(4,"forward","rear"), drv_price = c(40000, 30000, 50000))
19-2. mpg와 drv_price 합치기
- 공통변수가 없는 상황에서 어떻게 합칠 수 있을까?
- 기본 파라미터: by = c("변수1"="변수2")
mpg <- left_join(mpg, drv_price, by=c("drv"="driving"))
20. fuel_price는 fuel 뒤로, drv_price는 city 앞으로 이동시키기
- 하나의 명령문으로 작성하기는 어렵고, 변수 별로 나누어서 실행
mpg <- mpg %>% relocate(fuel_price, .after=fuel)
mpg <- mpg %>% relocate(drv_price, .before = city)
bind_rows 함수
- 새로운 사례를 추가할 때 사용하는 함수
- 새로운 사례는 기존 데이터 프레임에 속하는 변수로 측정된 사례여야 함
- 중복된 값(기준치)에 대해 하나를 제외하는 방법: distinct
exam <- exam %>% distinct(id, total, .keep_all=T)
exam_add <- read.csv("exam_add.csv", stringsAsFactors = F, fileEncoding = "CP949", encoding = "UTF-8")
→ encoding으로 인한 에러가 발생해(macOS) fileEncoding, encoding 값을 추가하여 해결
exam_add$class <- as.factor(exam_add$class)
exam <- bind_rows(exam, exam_add)
→ exam의 class는 범주형이고 exam_add의 class는 int형이어서 bind가 되지 않음. 첫 번째 줄 코드를 통해 class 자료형을 맞추어주는 것으로 해결
21. 통합된 exam 데이터 프레임에서 id=34는 id만 다를 뿐, id=29와 동일한 사례이므로 제거하시오.
exam <- exam %>% distinct(class, address, total, .keep_all = T)
22. average 변수 측정결과가 NA인 사례에 대해 세 과목에 대한 실제 평균값을 구해서 이 값으로 대체하시오.
exam$average <- ifelse(is.na(exam$average), exam$total/3, exam$average)
#소수점 둘째 자리까지만 표현
exam$average <- round(exam$average, digits=2)
23. science 변수 측정결과가 NA인 사례에 대해 다른 사례들의 science 평균값으로 대체하시오.
exam$Science <- ifelse(is.na(exam$Science), mean(exam$Science, na.rm = T), exam$Science)
'Language > R' 카테고리의 다른 글
[R] 맥북 M1 multilinguer 설치 오류 해결 과정 (0) | 2021.12.18 |
---|---|
[R] 데이터 전처리: mutate, group_by, summarise 함수 (0) | 2021.10.10 |
[R] 데이터 전처리: filter, select, arrange 함수 (0) | 2021.10.08 |
[R] 데이터 분석 기초 - 실습 (0) | 2021.10.05 |
[R] 데이터 분석 기초 (0) | 2021.10.05 |