전공수업/R

[R통계분석] R 데이터 처리2 - 주요함수

aaahyunseo 2024. 10. 12. 23:43

4.1 csv

패키지 별 다양한 데이터 파일 읽기 및 쓰기 함수가 존재함.

패키지 별 데이터 읽기/쓰기 함수

 

 

외부 데이터 파일 읽어오기 : csv 파일

  • read.csv() 함수
    • csv 파일을 읽기 위한 함수
    • 주요 인수 - 읽어올 파일의 경로와 파일 이름, header, skip
      • header : 데이터셋의 첫 줄을 열 이름인 헤더로 읽을 것인지의 여부를 TRUE와 FALSE 중 하나로 설정.(default는 TRUE)
      • skip : 건너뛸 줄 수를 지정. 데이터 파일이 첫 줄부터 데이터셋으로 시작하지 않는 경우에 사용함.

4.2 함수를 활용한 데이터 분석

특성 찾기 함수

  • mean(), median(), var(), sd() : 평균, 중앙값, 분산, 표준편차 구하기 함수
  • fivenum(), diff() : 다섯자리 숫자요약과 사분위수 간의 거리 구하기 함수

* 다섯자리 숫자요약 : 최솟값, 제1사분위수, 중앙값, 제3사분위수, 최댓값

4.3 데이터 활용 기법

패키지 설치

  • 패키지 : R의 기능을 이용하여 사용자들이 편리하게 데이터를 활용하기 위한 다양한 함수를 제공함.
  • 패키지 설치 명령어 : install.packages("{설치할 패키지명}")
  • 작업공간과 연결 : library() 함수 사용.

tidyverse 패키지

  • ggplot, purrr, tibble, dplyr, tidyr, stringr, readr, forcats 패키지를 모두 한 번에 설치해줌.

dplyr 패키지

  • 데이터를 다루는 문법으로 다음의 다섯가지 동사를 제공하여 데이터셋을 다루는데 도움을 주는 패키지로 다음은 각 동사를 구현한 대표적인 함수.
    • filter() : 조건에 맞는 행 추출
    • select() : 원하는 열 추출
    • mutate() : 기존 열에 저장한 데이터를 이용하여 열 생성
    • arrange() : 데이터 정렬
    • summarise() : 데이터 요약
    • 이 다섯가지 함수는 첫 번째 인수로 데이터프레임을 취하는 공통점이 있음.
    • group_by() : dplyr 패키지에 Split을 위해 구현 되어 있는 함수로, 열의 값 별로 그룹을 만들고 각 그룹 별로 요약
  • 위 다섯가지 기법을 결합하기 위해 하나의 흐름으로 만들어주는 파이프 연산자(%>%)를 사용한다.
  • %>% 연산자는 좌측의 데이터프레임을 우측 함수의 첫 번째 인수로 전달한다.

* tibble

  • R에서 사용하는 데이터 구조로 data.frame의 현대적 대안임.
  • tidyverse 패키지에서 제공하는 기능.
  • 데이터 분석을 위한 더 직관적이고 유연한 데이터 프레임을 제공함.
  • 주요 특징
    • 행과 열을 제한적으로 보여주어 긴 데이터를 다룰 때 가독성이 좋음.
    • 열 이름이 더 유연하여, 공백이 있는 이름이나 숫자로 시작하는 이름도 허용.
    • 기존 data.frame과 호환 가능.
    • 문자형 데이터가 자동으로 팩터로 변환되지 않으며, 각 열의 데이터 타입을 유지함.
    • 열 이름에 특수 문자나 공백이 들어가도 문제 없이 사용할 수 있으며, 백틱(`)을 사용해 접근 가능.

4.4 데이터 정리 - 데이터 과학자의 소양

깔끔한 데이터

  • 변수마다 열을 가져야 한다.
  • 관찰 대상마다 행을 가져야 한다.
  • 각 값은 셀을 가져야 한다.

지저분한 데이터 유형

  • 열 이름이 측정값인 경우
  • 하나의 셀에 여러 값이 들어 있는 경우
  • 측정값이 행과 열에 모두 포함된 경우
  • 같은 데이터셋에 구분되지 않은, 전혀 다른 관찰 대상이 있는 경우
  • 하나의 관찰 대상이 여러 데이터셋으로 나뉜 경우

Long Format/Wide Format

  • Long Format : 새로운 데이터 저장으로 행이 증가
  • Wide Format : 새로운 데이터 저장으로 열이 증가
  • 관찰대상을 행으로 저장하는 깔끔한 데이터의 성질에 따라 Long Format 데이터가 깔끔한 데이터로 인식됨. 주로 Wide Format은 요약 데이터의 형태

4.5 문자 데이터

기본 문자 관련 함수

R의 문자열 관련 함수

 

 

정규표현식

  • 문자열의 패턴을 표현한 식
  • tidyverse의 stringr 패키지가 지원하는 함수 사용
    • str_detect() : 원하는 패턴의 존재 여부를 확인하는 함수(논리값 반환)
    • str_extract() : 원하는 패턴을 추출하는 함수
  • 문자열 클래스 - [:클래스명:] 형태로 제공
  • 문자로써 - 를 사용하기 위해서는 이스케이프 처리가 필요하다 : \
  • 문자열을 나타내는 대괄호 사이에서도 이스케이프 문자 \를 사용해 문자열 내에서 문자가 아닌 이스케이프 기호로 사용하기 위해 겹쳐서 사용 \\
문자열 클래스

 

4.6 날짜 및 시간

  • R은 날짜와 시간을 서로 다른 유형으로 저장
  • as.Date() 함수를 이용하며 결과로 날짜형 데이터(객체) 반환
  • class() 함수를 적용하면 객체의 유형을 알 수 있음
  • 시간데이터
    • POSIXt 객체
      • POSIXct : ct는 continuous time으로 "년/월/일 시:분:초"와 같은 단일 문자열
      • POSITlt : lt는 list time으로 연월일, 시분초 등의 개별 정보를 리스트로 저장
    • attributes()와 attr() : 객체의 속성을 살피는 함수
  • strptime() : 문자열에서 시간 정보 추출 함수
    • 첫 번째 인수 : 시간 정보를 담고 있는 문자열 벡터
    • 두 번째 인수 : 시간 정보의 포맷
시간 정보의 포맷

 

 

  • 두 시간 차이 연산자 -
    • Date와 POSITt 클래스
    • 시간 차이를 나타내는 객체인 diff 객체로 반환
    • difftime() 함수
      • 첫 번째 인수와 두 번째 인수 : Date 혹은 POSITt 클래스의 데이터를 전달받음.
      • 인수 units : 초("secs"), 분("mins"), 시간("hours"), 일자("days"), 주("weeks") 단위로 차를 구함.