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 |
로또 분석 어떤 숫자가 많이 나왔을까? - 200회분 데이터로 분석해보자 (2) | 2017.11.07 |
R 조건문(ifelse)를 알아보자 (0) | 2017.11.07 |
R 데이터 프레임 다루기 (0) | 2017.11.03 |