꿈 많은 사람의 이야기
R 데이터 다루기(filter, select, summarise ,정렬 등)를 공부해봐요 본문
R에서 데이터를 다루는 방법은 여러가지가 있습니다.
이번 포스팅은 dplyr 라이브러리를 이용해서 데이터를 다루는 방법을 공부해볼까 합니다
먼저 데이터 행(row)값을 추출하는 방법입니다!
아래 그림처럼요~
내가 class가 1인 사람들의 정보만 출력하고 싶을 때가 있을겁니다
그럴때 사용하는 방법이죠~
먼저 dplyr 라이브러리를 가지고 옵니다
설치가 안되어 있다면 install.packages로 설치하세요~
그리고 csv파일을 읽어와서 진행을 해보겠습니다
%>% 라는 것은 출력하라는 겁니다
exam 데이타 프레임에 있는 것을 출력을 하는데 class가 1인 데이터만 filter해서 추출해라! 이거죠
그렇게 출력하면 위와 같이 출력이 됩니다
조건을 다르게 하면 다르게 출력이 가능해요~ 아래처럼요
영어가 60점 초과 또는 수학 점수가 60점 이상인 데이터만 출력 등 여러 조건으로 출력이 가능합니다
그리고 %in% 기능이 있습니다
이것은 %in% c(1,2,3) 만약 이렇게 하면요
1,2,3 중 매칭되는 것이 있는가? 라고 물어보는 것과 비슷하다고 보시면 됩니다
위 처럼요!
그래서 class가 1, 3, 4인 데이터만 출력하게 됩니다~
또한 열 값만 추출해서 보고 싶을 때도 있을겁니다
아래 그림처럼요
이렇게 뽑고 싶으시면 select( ) 문을 이용하시면 됩니다
math 열만 가지고 와서 data2에 넣습니다
그리고 출력하면 아래처럼 됩니다
그리고 select( )안에 여러개의 값을 넣을 수 있습니다
-를 넣으면 이 값을 제외한 나머지를 출력하라는 것이 되죠
위 사진처럼요~
꽤나 재밌습니다
그리고 조합도 가능합니다
filter로 class=1인 데이터만 추출해서 그 중 math 값만 추출하는 것처럼요~
위 처럼 하면 됩니다
출력값을 보면 class가 1인 데이터 그리고 그 데이터의 math값을 출력합니다
이번엔 정렬을 해볼까요?
arrange( )를 통해 데이터를 정렬할 수 있습니다
desc()값을 넣지 않으면 오름차순으로 정렬합니다
즉 작은 값이 맨 위에 나오죠
desc( )를 넣으면 내림차순으로 진행됩니다.
math값을 넣으면 math값이 가장 높은 데이터부터 출력되게 하는거죠~
위 처럼요~
그리고 변수를 추가하는 방법이 있는데요~
화살표 위, 아래로 2가지 방법입니다.
위는 가장 기본적인 방법입니다. 아래는 mutate라는 함수를 써서 사용하는 겁니다
아래 사진을 보시면 차이점이 나옵니다.
mutate를 사용하면 mutate(aa = ifelse(age < 30, ~~) 등으로 할 수 있기 때문에
조건을 걸 수 있는게 편리합니다
summarise라는 것도 있습니다.
summarise는 mean(), sum(), min(), max(), n()등의 함수와 같이 많이 쓰입니다.
위 사진들 처럼요~
그리고 group by를 이용하면 더 강력한 데이터를 뽑을 수 있습니다.
만약 group by(class)를 하면 반별로 데이터를 추출 할 수 있는 것이죠
아래는 그 예시입니다.
'R' 카테고리의 다른 글
R 그래프 이미지로 저장, pdf 저장 (0) | 2017.11.15 |
---|---|
R 데이터 합치기(left_join, bind_rows) 공부하기 (0) | 2017.11.10 |
R 데이터 다루기(filter, select, summarise ,정렬 등)를 공부해봐요 (0) | 2017.11.09 |
로또 분석 어떤 숫자가 많이 나왔을까? - 200회분 데이터로 분석해보자 (2) | 2017.11.07 |
R 조건문(ifelse)를 알아보자 (0) | 2017.11.07 |
R 데이터 프레임 다루기 (0) | 2017.11.03 |