mutate()함수에 대해 알아보자. mutate함수는 파생 변수를 생성할 때 사용하는 함수이다. 동일하게 mutate()함수 또한 데이터 전처리를 위해 사용되는 함수이기 떄문에 dplyr패키지를 호출해 주어야 하며 사용할 테스트 데이터도 호출해 주어야 한다.
mutate()함수의 매개변수의 형태는 다음과 같다.(파생변수 이름 = (파생 변수의 값이 될 식)) 예시를 들어서 수학, 과학, 영어의 값을 모두 합친 값 total 이라는 파생변수를 만든다고 가정하자. 그러면 다음과 같이 mutate함수를 작성해 주면 된다.
사진에서 보이다 싶이 세 과목의 데이터를 합친 값에 해당하는 total이라는 변수가 생긴것을 볼 수 있다. 이번에는 두가지 이상의 파생변수를 만든다고 가정하여 보자. 두가지 이상의 변수를 만들때는 각각의 변수명을 쉼표로 나눠주면 된다. 예를 들면 앞에서 만들어 보았던 세 과목의 총합에 해당하는 변수와 영어 점수를 기준으로 A,B,C 세가지 등급을 나눈다는 가정을 하여보자. 점수 구간별로 등급을 나누기 때문에 ifelse() 조건문을 이용하면 된다. ifelse()문의 기본 문법 형태는 다음과 같다.
ifelse((조건),(조건에 참일경우의 데이터),(조건에 거짓일경우의 데이터))
이런 경우에는 코드를 다음과 같이 작성해 주면 된다.
좀 더 자세한 데이터 시각화를 위해서 grade변수를 생성 한 부분까지의 전체 데이터를 출력해 보면 다음과 같다.
사진을 보면 알 수 있듯이 60점 미만의 점수를 받은 사람은 C등급을, 60점 이상 80점 미만을 받은 사람은 B등급을 80점 이상을 받은 사람은 A등급을 받은것을 볼 수 있다. 다른 경우로 만약 위에서 구한 점수의 총합을 기준으로 평균값에 대한 파생변수를 생성한다고 가정하자. 방법은 방금 하였던 점수별 등급 나누기와 동일하다.
다음과 같이 평균값에 대한 파생변수까지 생성해 보았다. 필자는 해당 예제를 작성할 때 처음 실수하였던 것이 있는데 mean()함수를 이용하였던 것이다. mean()함수가 평균값을 구해주는 함수이기에 Average = mean(math + english + science)로 해주었었는데, 이 방법이 틀렸던 이유는 mean함수는 다음과 같이 다룬다. 예를 들어 a라는 데이터 프레임의 math변수값의 평균이라고 한다면 mean(a$math)와 같이 말이다. Average = mean(math + english + science)와 같이 입력을 해주면 201.~ 이라는 모두 동일한 값으로 출력이 되었는데, 그 이유는 mean이라는 함수 안에 math, english, science라는 변수를 입력해 주었기에 이 세 변수안에 있는 모든 값들의 합에 대한 평균값이 출력이 된 것이었다.
'DataAnalysis > R' 카테고리의 다른 글
데이터 전처리하기(Data Process) - summaries(), group_by() (0) | 2019.03.03 |
---|---|
mutate()함수를 이용한 분석 예제 (0) | 2019.03.03 |
arrange()함수를 이용한 분석 예제 (0) | 2019.03.02 |
데이터 전처리하기(Data Processing) - arrange() (0) | 2019.03.02 |
데이터 전처리하기(Data Processing) - select() (0) | 2019.02.23 |