728x90
데이터의 기존 변수를 바탕으로 새로운 파생변수를 추가하고자 할 때 mutate( ) 함수를 효율적으로 사용할 수 있다. mutate( ) 함수는 기존 변수를 사용하여 연산을 수행하거나 조건문을 적용하여 분석 목적에 적합한 새로운 변수를 데이터 프레임에 직접적으로 추가할 수 있다. 구체적인 사용방법은 아래 예시와 같다.
Case 1: 단일 파생변수 추가
- 예시: Ozone, Solar.R, Wind 등 3개 변수를 모두 합친 새로운 변수를 추가할 경우
- mutate( ) 함수의 괄호 안에 파생변수 이름과 연산자를 입력
> airquality %>% mutate(total = Ozone + Solar.R + Wind) %>% head()
Ozone Solar.R Wind Temp Month Day total
1 41 190 7.4 67 5 1 238.4
2 36 118 8.0 72 5 2 162.0
3 12 149 12.6 74 5 3 173.6
4 18 313 11.5 62 5 4 342.5
5 NA NA 14.3 56 5 5 NA
6 28 NA 14.9 66 5 6 NA
Case 2: 여러 파생변수 추가
- 예시: Ozone, Solar.R, Wind 등 3개 변수를 모두 합친 변수와 평균을 새로운 변수로 추가할 경우
- 다음과 같이 쉼표를 이용해 새 변수 이름과 연산자를 입력
> airquality %>%
+ mutate(total = Ozone + Solar.R + Wind,
+ mean = (Ozone + Solar.R + Wind) / 3) %>%
+ head()
Ozone Solar.R Wind Temp Month Day total mean
1 41 190 7.4 67 5 1 238.4 79.46667
2 36 118 8.0 72 5 2 162.0 54.00000
3 12 149 12.6 74 5 3 173.6 57.86667
4 18 313 11.5 62 5 4 342.5 114.16667
5 NA NA 14.3 56 5 5 NA NA
6 28 NA 14.9 66 5 6 NA NA
Case 3: 조건에 따른 파생변수 추가
- 예시: Ozone, Solar.R, Wind 등 3개 변수의 평균이 100보다 크면 "Good"로 분류하고 아닌 경우에는 "Bad"로 분류할 경우
- ifelse( ) 함수를 적용하면 조건에 따라 다른 값을 부여한 변수를 추가할 수 있음.
> airquality %>%
+ mutate(mean = (Ozone + Solar.R + Wind) / 3,
+ result = ifelse(mean > 100, "Good", "Bad")) %>%
+ head()
Ozone Solar.R Wind Temp Month Day mean result
1 41 190 7.4 67 5 1 79.46667 Bad
2 36 118 8.0 72 5 2 54.00000 Bad
3 12 149 12.6 74 5 3 57.86667 Bad
4 18 313 11.5 62 5 4 114.16667 Good
5 NA NA 14.3 56 5 5 NA <NA>
6 28 NA 14.9 66 5 6 NA <NA>
Case 4: mutate( ) 함수 + arrange( ) 함수
- 파생변수를 추가하고 나면 바로 dplyr 패키지 함수에 활용이 가능함.
- 새로운 추가한 파생변수를 arrange( ) 함수에서 기준으로 삼아 정렬해 일부를 다음과 같이 출력할 수 있음.
> airquality %>%
+ mutate(total = Ozone + Solar.R + Wind) %>%
+ arrange(desc(total)) %>%
+ head()
Ozone Solar.R Wind Temp Month Day total
1 168 238 3.4 81 8 25 409.4
2 135 269 4.1 84 7 1 408.1
3 80 294 8.6 86 7 24 382.6
4 122 255 4.0 89 8 7 381.0
5 71 291 13.8 90 6 9 375.8
6 97 272 5.7 92 7 9 374.7
'R Programming > dplyr 패키지' 카테고리의 다른 글
group_by( ) 와 summarise( ) 함수: 그룹별 요약 (0) | 2022.08.11 |
---|---|
arrange( ) 함수: 케이스(행) 정렬 (0) | 2022.08.09 |
select( ) 함수: 변수 추출 (0) | 2022.08.08 |
filter( ) 함수: 케이스(행) 추출 (0) | 2021.02.25 |
dplyr 패키지 개요 및 설치 (0) | 2021.02.23 |
댓글