본문 바로가기

배우기/복습노트[R과 분석]

[복습] R(programming language)에서의 구조적 문법(dplyr)

728x90
반응형

sql처럼 하나의 구조를 갖는 문장으로 데이터를 처리하는 방식이다.

 

1. select: 컬럼 선택(선택만 가능, 연산 불가, 연산은 mutate)

 

예) emp에서 EMPNO를 제외하고 나머지 컬럼 모두 선택

 

컬럼이름(문자값)에 -를 사용하여 제외가 가능하다.

기존 R에서의 방식은 아래와 같다.

emp[.names(emp) != 'EMPNO]

 

 

예) emp에서 SAL과 전체 컬럼 이어서 출력

 

컬럼이름(문자값)을 사용한 연속 출력(slice indexing)이 가능함

 

 

예) emp에서 SAL과 전체 컬럼 이어서 출력

sql에서는 

select sal, *

  from emp;

가 되지 않았는데 여기서는 가능하다.

 

 

 

 

2. filter: 행 선택

 

예) emp에서 10번 부서원에 대하여 EMPNO, ENAME, SAL 출력

이와 같은 방법은 에러가 발생한다.

순서가 잘못되었기 때문이다.

DEPTNO가 없는 상태에서 filter로 내려왔으므로 deptno를 먼저 필터링해주자.

 

 

3. mutate: 연산

 

예) emp에서 SAL을 10% 인상한 값을 출력

 

 

728x90

 

4. arrange: 정렬

예) emp에서 10번 부서원에 대해 EMPNO, ENAME, SAL 선택, SAL을 높은 순서대로 정렬하여라

 

 

5. group by, summarise: 그룹 연산(분리)

 

예) emp에서 부서별로 평균 SAL을 구하여라

 

패키지마다 동일한 이름의 함수가 많으므로 여기서는 dplyr 실행되어야 하는데 선생님의 경우에는 plyr 패키지가 로딩되어 함수 결과가 이상하게 출력되었다. 이럴 때에는 plyr 패키지를 detech 하거나 dplyr::을 붙여주면 해결된다.

 

 

6. summarise: 그룹 연산(함수 적용)

 

위처럼 여러 개의 함수를 사용할 수 있다.

 

 

연습문제를 풀어보자

student.csv 파일을 읽고 각 1, 2학년 학생의 이름, 학년, 성별, 키를 출력하여라

단 성별과 키 순서대로 정렬하여라(키 높은 순).

 

728x90
반응형