Dplyr: 여러 조건에서 mutate()를 사용하는 방법
dplyr 에서 다음 기본 구문을 사용하여 mutate() 함수를 사용하여 여러 조건에 따라 새 열을 생성할 수 있습니다.
library (dplyr) df <- df%>% mutate(class = case_when((team == ' A ' & points >= 20) ~ ' A_Good ', (team == ' A ' & points < 20) ~ ' A_Bad ', (team == ' B ' & points >= 20) ~ ' B_Good ', TRUE ~ ' B_Bad '))
이 특정 구문은 다음 값을 사용하는 class 라는 새 열을 생성합니다.
- A_팀이 A와 같고 점수가 20보다 크거나 같으면 좋음 .
- A_ 팀이 A와 같고 점수가 20점 미만인 경우 나쁨.
- B_ 팀이 B와 같고 점수가 20보다 크거나 같으면 좋음.
- 이전 조건 중 어느 것도 충족되지 않으면 B_Bad입니다 .
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
관련 항목: dplyr에서 case_when()을 사용하는 방법
예: 여러 조건으로 dplyr에서 mutate() 사용
다양한 농구 선수에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'), points=c(22, 30, 34, 19, 14, 12, 39, 15, 22, 25)) #view data frame df team points 1 to 22 2 to 30 3 to 34 4 to 19 5 to 14 6 B 12 7 B 39 8 B 15 9 B 22 10 B 25
mutate() 함수와 함께 다음 구문을 사용하여 값이 팀 및 포인트 열의 값을 기반으로 하는 class 라는 새 열을 생성할 수 있습니다.
library (dplyr) #add new column based on values in team and points columns df <- df%>% mutate(class = case_when((team == ' A ' & points >= 20) ~ ' A_Good ', (team == ' A ' & points < 20) ~ ' A_Bad ', (team == ' B ' & points >= 20) ~ ' B_Good ', TRUE ~ ' B_Bad ')) #view updated data frame df team points class 1 A 22 A_Good 2 A 30 A_Good 3 A 34 A_Good 4 A 19 A_Bad 5 A 14 A_Bad 6 B 12 B_Bad 7 B 39 B_Good 8 B 15 B_Bad 9 B 22 B_Good 10 B 25 B_Good
새로운 클래스 열은 팀 및 포인트 열의 값을 기반으로 값을 가져옵니다.
예를 들어 첫 번째 행의 팀 열에는 A 값이 있고 20 이상의 포인트 값이 있으므로 새 클래스 열에서는 A_Good 값을 받았습니다.
이 예에서는 & 기호를 “AND” 연산자로 사용하여 클래스 열에 값을 할당하기 전에 두 조건이 모두 참인지 확인했습니다.
그러나 |를 사용할 수도 있었습니다. 대신 클래스 열에 값을 할당하기 전에 두 조건 중 하나가 충족되었는지 확인하려면 “OR” 연산자로 기호를 사용하세요.
추가 리소스
다음 튜토리얼에서는 dplyr에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
dplyr: 열에 문자열이 포함된 경우 변수를 변경하는 방법
dplyr: mutate()를 사용하여 요인 수준을 변경하는 방법
dplyr: across() 함수를 사용하는 방법