R # 데이터 가공 (4)
" 쉽게 배우는 R 데이터 분석 " 을 교재로 하여 공부하는 과정을 작성한 글입니다." (일개 대학생입니다.)
이전 " 데이터 가공 (3) " 에서는 필요한 데이터를 열 기준으로 추출하는 방법을 select를 통해서 배웠다.
앞에 배웠던 것들을 다시 한번 복습하는 시간을 가져야 할 것 같다는 생각이 드는 한때 !
더 배워야 할 것들이 많이 남지는 않았기 때문에
꾸준히 진도를 나가보도록 하겠다!
# 값 정렬하기
⇒ arrange()
아무렇게나 쓰여져 있는 데이터들을 큰 값 혹은 작은 값부터 정리해서 편하게 보고싶다면?
오름차순, 내림차순으로 값을 정렬하자!
exam %>% arrange(math)
⇒ id, class, 시험점수가 들어있는 데이터에서 수학점수를 기준으로 오름차순 정렬하자
흠, 난 높은 점수부터 보고싶은걸?
exam %>% arrange(desc(math))
⇒ 수학점수를 기준으로 내림차순 정렬하자
위의 두 결과 중 class 열을 살펴보면, 2,5,2,5,5 같이 정리되어 있지 않음을 볼 수 있다.
만약 난 반 별로 높은 점수 혹은 낮은 점수부터 살펴보고 싶다면, 어떻게 해야할까?
⇒
exam %>% arrange(class, math)
반 별로 정리해놓고, 그 안에서 수학점수를 오름차순으로 정리한다.
데이터를 정렬하는 것은 arrange 하나로 간단하게 해결 가능하다!
그럼 정리하는 의미에서 예제 문제를 풀어보자!
내가 관심있어하는 mpg 데이터를 가지고 예제를 풀어보자!
Q. "audi"에서 생산한 자동차 중 어떤 모델의 hwy가 높은지 알아보려 함. "audi"에서 생산한 자동차 중 hwy가 1~5위에 해당하는 자동차의 데이터를 출력해보자 .
⇒ 먼저 첫번째, 아우디의 데이터만 뽑아서 "audi"에 저장해두고, 두번째, 그 중에서 고속도로연비를 순서대로 뽑으면 된다.
1.
audi <- mpg %>% filter(manufacturer=="audi")
2.
View(audi %>% arrange(desc(highway)) %>% head(5))
첫번째 코드에서는 audi 데이터만 뽑아서 저장하는 과정이고
두번째 코드에서는 보기 쉽게 표로 뽑기 위해 맨 처음에 View를 쓰고, audi의 highway(hwy, 고속도로연비)를 높은 순서대로 정렬하기 위해 arrange(desc())를 써주고 1~5위를 보기 위해 head(5)까지 추가해서 코드를 마무리했다.
가장 우측의 highway를 보면 가장 높은 연비가 31, 가장 낮은 연비가 28이다.
고속도로연비가 높은 차량 모델은 아우디의 a4임을 알 수 있다.
(Q). 4는 사륜구동, f는 전륜구동, r은 후륜구동인데 연비가 좋은 차량의 1위부터 4위는 전륜구동이던데,,, 그럼 전륜구동은 다 연비가 좋을까?
# 파생변수 추가하기
⇒ mutate()
이전에 변수를 직접 지정해서 데이터프레임에 파생변수를 추가하는 방식을 배웠었다.
⇒ df$새변수 <- df$변수1 + df$변수2
그런데 이번엔 함수로 파생변수를 추가하는 방법을 배워보자!
Q. 그럼 dplyr 방식과 mutate는 무엇이 다를까?
- dplyr는 매번 df을 지정해주어야한다. 하지만 mutate는 앞에서 한번 지정해주면 괄호 안에서는 지정해주지 않고 변수명만 써도 된다.
시험점수 데이터에서 점수들의 합을 파생변수로 넣어볼까? 그리고 총합점수가 낮은 사람의 정보부터 보여주도록 하자!
⇒
exam %>% mutate(total=english+math+science) %>% arrange(total) %>% head
가장 총합점수가 낮은 학생은 3반의 학생이다.
그렇담 이번에도 복습을 위해 예제를 풀어볼까?
Q. mpg데이터 중 city, highway 연비의 평균인 평균연비 변수를 만들고 그 값이 높은 순으로 3위까지 추출해보자.
⇒
mpg %>% mutate(total=(city+highway)/2) %>% arrange(desc(total)) %>% head(3)
아랫줄 가장 오른쪽에 total이라는 파생변수가 생겼고, 내림차순으로 정렬된 결과가 보여져 있다.
차량 종류는 모두 폭스바겐이다.
" 폭스바겐 " 은 도시연비와 고속도로연비가 모두 높은 축에 속한다.
wow
오늘 배운 것들 모두 써보는 실습이 끝났다 !!
R에서는 %>% 이 기호가 가장 많이 쓰이는 듯 하다.
지금까지 계속 데이터를 가공하고 필요한 정보를 추출하는 방법을 배웠는데 계속 꾸준히 하다보니 이해도가 늘고
새로운 것을 배울 때 거부감이 점점 없어지는 듯 하다.
지금 공부하는 방식대로 파이썬으로 하는 데이터 분석도 배워볼까 한다.