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% 인상한 값을 출력
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학년 학생의 이름, 학년, 성별, 키를 출력하여라
단 성별과 키 순서대로 정렬하여라(키 높은 순).
'배우기 > 복습노트[R과 분석]' 카테고리의 다른 글
[복습] R(programming language) 데이터 구조 변경(long, wide) (2) (0) | 2023.12.07 |
---|---|
[복습] R(programming language) 데이터 구조 변경(long, wide) + 하루끝(20231206) (0) | 2023.12.07 |
[복습] R(programming language) 집합연산자 (0) | 2023.12.07 |
[복습] 통계/분석 용어 정리 (0) | 2023.12.06 |
[실습문제] 2023. 12. 5.(화) (2문제) (로또 번호 생성기, 이전값 가져오기 팁) (0) | 2023.12.06 |