1 . Derived Variable(파생변수)
만약 시험성적이라는 데이터가 있다고 해보자. 해당 데이터를 나는 .csv파일 형식으로 데이터 프레임을 저장할 것이며 해당 데이터 프레임의 변수로는 반(class),수학(math),영어(english),평균(averge)가 들어가야 된다고 하자. 우선 여기서 우리가 눈여겨봐야할것은 '평균'이라는 것이다. 여기서 예시로 든 데이터 프레임에서의 평균은 (수학점수) + (영어점수) / (과목수) 를 해주면 된다. 왜 내가 평균을 눈여겨봐야 하나 라는거에 대해 생각해보자. 해당 내용을 생각해 보면서 우선적으로 평균 변수를 제외한 데이터 프레임을 생성하고 출력해보자.
다음과 같이 변수 3개, 행이 8개인 데이터 프레임을 생성해 주었다. 자, 이제 왜 평균 변수에 대해 눈여겨봐야하는지 생각을 해보았는가? 우선적으로 해당 예시에서는과목 변수 2개, 행의 개수, 즉 데이터의 개수는 8개이다. 여기서 평균에 대한 변수를 추가하라고 한다면 그래도 데이터가 8개로 많지 않기 때문에 각각 평균 구해서 넣어줄 수 있다. 하지만 만약 변수가 20개고 데이터, 즉 행의 개수가 400개 된다고 한다면 모두 일일히 계산하여 넣어줄 것인가? 그것은 매우 비효율적인 일이다. 평균과 같이 변수와 변수의 데이터끼리의 조합이 필요한 경우, 변수와 변수끼리의 조합을 통해 새로운 변수를 생성할 수 있다. 이와 같이 변수와 변수끼리의 조합을 통해 생성된 변수를 파생변수(Derived Variable)라고 한다.
우선적으로 파생변수의 첫발을 들여보자. math와 english 변수의 총 합을 구해보자.
우선 첫번째 이미지를 보자. 코드를 보면 dat$sum <- dat$math + dat$english 라는 코드가 작성되어 있다. 이 달러표시($)는 무엇을 의미하는지 궁금할 것이다. 간단히 말하면 데이터 프레임의 특정 변수를 가리킬때 사용된다. 이 달러표시($)는 다음과 같이 쓰인다. (데이터프레임)$(변수) 이는 어떤 의미냐 하면 $표시 앞에 명시된 데이터프레임에서 $ 표시 뒤에 나오는 변수를 가리키는것을 의미한다. 여기서 첫번째 이미지를 해석해보면 dat라는 데이터 프레임 안에서 모든 행마다 각 행에 존재하는 math라는 변수와 english라는 변수의 데이터를 각각 더해서 dat라는 데이터 프레임에 sum이라는 파생 변수를 생성하겠다는 의미이다. dat$sum에 대한 입력을 완료 하고 실행한 데이터프레임을 재출력하면 english와 math변수 각각의 데이터 합에 해당하는 sum이라는 파생변수가 생성된것을 볼 수 있다.
그렇다면 이번에는 이를 이용해서 평균을 구해보자. 평균을 구하는 과정도 sum변수를 생성할 때와 마찬가지로 해주면 된다.
dat$math + dat$english, 즉 같은 행에 존재하는 english, math변수의 값을 더해준다. 그 후 우리가 구할것은 평균이기 때문에 총 합을 구하는데 사용된 변수의 개수(과목수)인, 2개를 나눠주면 평균이 되는것이다. 총합 변수를 생성해 줄 떄와 마찬가지로 dat 데이터프레임 안에 평균을 의미하는 average라는 파생 변수를 생성해주고 출력해 보자. 그러면 두번째 이미지와 같이 평균값이 구해진것을 볼 수 있다. 물론 dat$average <- (dat$math + dat$english)/2코드를 위에서 우리는 데이터 프레임 안에 math와 english 변수의 총 합을 구했기 떄문에 dat$average <- dat$sum / 2로 작성해 동일하게 파생변수가 생성된다. 다음에는 ggplot2패키지 안에 테스트 데이터에 해당하는 mpg데이터를 가지고 파생변수를 활용해 보자.
'DataAnalysis > R' 카테고리의 다른 글
R에서 사용하는 연산자들 (0) | 2019.02.23 |
---|---|
데이터 전처리하기(Data - Processing) - filter() (1) | 2019.02.23 |
Change Variable's name (0) | 2019.02.01 |
Understanding Data - with mpg Data (0) | 2019.01.31 |
Understanding Data (0) | 2019.01.31 |