본문 바로가기
R

R 작업환경, 실습예제

by Nickman 2023. 9. 5.

7~9장에 해당하는 내용이다.

 

1. 작업 환경 만들기

2. 실습용 데이터 가져오기

 

part7_project

실습용 데이터는 2019 하반기 패밀리 레스토랑의 온라인 예약 및 매출 데이터와 관련한 데이터이다.

customer_r 고객정보

item_r 메뉴 상품 정보

reservation_r 주문 예약, 취소 정보

order_info_r 주문 상세 정보 

재료 다루는 법 익히기: 데이터 처리를 위한 dplyr(디플라이알, 처리하기) 패키지

"요리 재료를 이용하여 본격적인 요리 시작"

 

2. 파이프 연산자 (%>%): 데이터 전달하기 (ctrl+shift+m)

dplyr 패키지를 로딩하면 파이프 연산자를 사용할 수 있다. 파이프 연산자(%>%)는 체인 연산자(chain operator) 또는 줄여서 파이프라고 하는데, 물길을 연결하는 파이프처럼 데이터와 데이터를 연결하는 dplyr 패키지의 핵심 연산자다. '데이터를 전달한다' 고 생각해도 된다. 앞서 연산된 결괏값이나 데이터를 다음으로 전달하는 역할을 하는 것이 파이프 연산자이다. 

count() : 데이터를 세는 함수

행 요약과 그룹화

1. summarise() 함수 : 행 요약하기

주문 테이블에서 매출(sales)의 평균값을 구하는 예

summarise(order_info_r, avg=mean(sales))

2. group_by() 함수 : 행 그룹화하기

중복되는 기준 열의 값의 행들끼리 합쳐서 평균을 내어 보여준다

행 조작

1. fliter() 함수 : 조건으로 행 선택하기

특정 조건을 만족하는 데이터를 필터링하여 반환한다. 

2. distinct() 함수 : 유일 값 행 선택하기

중복 행 값을 제거하여 반환한다. 

item_id를 종류별로 하나만(유일 값(unique value)) 알고 싶을 때 사용한다.

3. slice() 함수 : 선택 행 자르기 

4. arrange() 함수 : 행 정렬하기

행을 작은 값에서 큰 값으로 정렬(오름차순) 하거나 큰 값에서 작은 값으로 정렬 (내림차순) 한다. 

arrange(desc()) : 내림차순
열 순 정렬 : reserv_no, item_id 열 순으로 정렬된다.

5. add_row() 함수 : 행 추가하기

6. sample_frac(), sample_n() 함수 : 무작위로 샘플 행 뽑기

0.1 비율로 무작위 추출, replace=TRUE 복원 추출(중복 가능)/FALSE 비복원 추출 (중복 불가능)

열 조작

1. selct() 함수 : 열 선택하기

2.mutate() 함수 : 열 조작해서 새로운 열 생성하기

3.transmute() 함수 : 원래 열 뺴고 새로운 열 생성하기

 mutate() 함수와 기능이 동일하지만, 기존 테이블의 열을 반환하지 않는다는 차이가 있다. 

 

4. mutate_all() 함수 : 모든 열 조작해서 새로운 열 생성하기

 사용할 함수를 지정하는 funs() 옵션과 함께 사용한다.

 

5. mutate_if() 함수 : 특정 조건 열만 조작해서 새로운 열 생성하기

 특정 조건을 만족하는 열만 조작해서 새로운 열을 생성한다. 

 

6. mutate_at() 함수 : 특정 열만 조작해서 새로운 열 생성하기

7. rename() 함수 : 열 이름 바꾸기

 

테이블 조작

행과 열로 구성된 테이블을 조작하는 함수

1. bind_cols() 함수 : 테이블 열 붙이기 (행 개수가 같은 경우)

bind_cols() 함수는 테이블의 열을 붙입니다. 

 

2. bind_row() 함수 : 테이블 행 붙이기 (행 개수가 다른 경우)

3. inner_join() 함수 : 일치하는 데이터 연결하기 

4. left_join() 함수 : 왼쪽 기준 모든 데이터 연결하기

5. right_join() 함수 : 오른쪽 기준 모든 데이터 연결하기

6. full_join() 함수 : 양쪽 모든 데이터 연결하기

7. intersect() 함수 : 데이터 교집합 구하기

8.setdiff() 함수 : 데이터 빼기

9.union() 함수 : 중복을 제거해서 데이터 합치기

 

dplyr 패키지 함수를 잘 사용하는 법

dplyr 패키지로 데이터를 잘 조작하려면 dplyr 기초 함수를 사용해서 패턴을 생각해 보고, 논리(logic)에 따라 함수를 추가하거나 함수 순서를 바꾸어서 코드를 작성하면 된다. 

 

* reservation_r 테이블에서 평균 방문 고객 수 (visitor_cnt)가 세 명 이상인 고객을 구하되, 평균 방문 고객 수가 높은 고객부터 출력하세요.

 

1. dplyr 기초 함수로 로직 구성하기

2. 목적에 맞게 함수를 선택하고 순서를 배치한다

3. 필요한 추가 함수를 사용하거나 R 기본 함수를 함께 사용한다.

 

* 요리 재료를 다루는 법을 응용하여 요리 만들기

요리명

order_info_r 테이블 메뉴 (item_id) 별, 월별 평균 매출을 계산한 후 메뉴별, 월별로 오름차순 정렬해서 출력하는 메뉴 아이템 별 월 평균 매출

기초 요리법에서 배운 R 기본 함수 응용하기

결과는 my_first_cook 이란 변수에 담아 출력하기

 

1. 테이블을 선택해서 데이터 전달

~ 기준 변경 : substr(reserv_no,1,6)

2. group_by() %>% 그룹화하기

3. summarise() %>% 열 요약 

~ 선택하기 : filter() 선택하기, distinct() 유일 값 선택하기

4.arrange(desc(avg)) 내림차순 정렬

 

티블

tb<- as_tibble() :티블 구조로 변환하는 함수 

 

어떤가요? 여러분의 첫 요리를 잘 만들었나요? 그렇다면 다행입니다. 하지만 생각만큼 잘되지 않았어도 괜찮습니다. 처음부터 잘할 수는 없죠. 포기하지 않고 계속 연습하다 보면 언젠가는 휼륭한 요리를 만들 수 있을 것입니다.

 

'R' 카테고리의 다른 글

R 중간고사  (0) 2023.10.17
R 데커레이션, ggplot2  (2) 2023.09.05
R 연산자와 함수  (0) 2023.09.03
R 변수와 함수 그리고 패키지  (1) 2023.09.03
모두의 R 데이터 분석 공부  (0) 2023.09.02