[ADsP] 3과목 요약 정리 : 3-2 R프로그래밍 기초
Note/Certificate

[ADsP] 3과목 요약 정리 : 3-2 R프로그래밍 기초

728x90
반응형

'ADsP 데이터 분석 준전문가 (데이터에듀)' 교재를 참고하여 간략히 정리하였습니다.

01 R 소개

  • 오픈소스 프로그램, 통계/데이터마이닝과 그래프를 위한 언어
  • GPL(General Public License)하에 배포되는 S프로그래밍 언어로 구현 → GNU-S라 함
  • 표준 플랫폼(S언어 기반)
  • 모든 운영체제에서 사용 가능
  • 메모리 저장방식, 객체지향언어, 함수형 언어

02 R 들어가기

  • 편리한 기능
    • 작업환경 설정: setwd(“디렉터리”)
    • 도움말: help, ?, RSiteSearch(“함수명”)
    • 히스토리: history(), savehistory(file=“파일명”), loadhistory(file=“파일명”)
    • 콘솔 청소: ctrl + L
  • 스크립트 사용
    • 한줄 실행: ctrl + R
    • 여러줄 실행: 드래그, ctrl + R
    • 주석: #
  • 패키지: R함수, 데이터 및 컴파일 코드의 모임
    • 설치: install.package(“패키지명”)
  • 배치모드
    • 사용자와 인터렉션이 필요하지 않는 방식 (프로세스 자동화)
    • 실행: batch.R 실행파일 위치에서 R CMD BATCH batch.R

03 R 기초

  • 변수
    • 변수명만 선언하고 값을 할당하면 자료형태를 스스로 인식
    • print(): 한번에 하나의 객체 출력 (형식지정 x) cat(): 여러 항목을 묶어 연결된 결과로 출력 (행렬, 리스트 x)
    • 값 할당: <-, <<-, =, -> 사용
    • Is(): 변수 목록 rm(): 변수 삭제
  • 통계량 계산
    1. 평균: mean()
    2. 중간값: median()
    3. 표준편차: sd()
    4. 분산: var()
    5. 공분산: voc()
    6. 상관계수: vor()
  • 함수
    • function(매개변수) {}
    • 표현식: 변수 할당, 조건문, 반복문, return 값
  • 연산자
    • : 인덱스
    • $(a$coef): 요소/슬롯 추출
    • :(1:10): 수열 생성
    • &: 논리 and
    • |: 논리 or
    • ~: 식
    • >: 오른쪽 대입 <: 왼쪽 대입

04 입력과 출력

  • 데이터
    • 텍스트 데이터, 데이터 베이스와 통계 프로그램에서 작성된 데이터를 읽음
    • 부동소수점 표현시 7자리 수를 기본으로 세팅, option(), digit=“숫자” 이용해 변경
    • cat(“출력할 내용”, file=“파일명”): 파일에 문자 출력
    • 경로 저장시 슬래쉬(/)나 역슬래쉬 쌍(\\) 사용
  • 외부 파일
    • 고정자리 변수 읽기: read.fwf(“파일명”, width=c(w1, w2 ...))
    • 구분자 변수 읽기: read.table(“파일명”, sep=“구분자”)
    • csv 파일 읽기: read.csv(“파일명”, header=T)
    • csv 파일 출력: write.csv(데이터 프레임, “파일명”)
  • 웹페이지 데이터 읽기
    • 파일 다운로드: read.csv(http://~)
    • ftp 파일 다운로드: read.cvs(ftp://~)
    • html 테이블: library(XML); readHTMLTable(“url”)

05 데이터 구조와 데이터 프레임

  • 벡터: 같은 자료형/모드
  • 리스트: 여러 자료형
  • 데이터 프레임: 행과 열로 이루어진 리스트
    • 각각 열에 대해 자료형 자동 구분 (열마다 다른 자료형)
    • 메모리상에서 구동
  • 데이터 구조
    1. 단일값: 원소가 하나인 벡터
    2. 행렬: 차원을 가진 벡터
    3. 배열: 3차원 또는 n차원까지 확대된 행렬
    4. 요인: 벡터의 고유값 정보(요인의 수준)를 얻음 → 범주형 변수, 집단 분류
  • 데이터 프레임 원소 선택
    1. L[[n]]
    2. L[[“name”]]
    3. L$name
  • 벡터, 리스트, 행렬 다루기
    • 재활용 규칙
    • 행렬
      • 행렬 설정: dim(vec) < -c(2, 3)
      • 행 이름: rowname(mtrx) < -c(“rowname1’, “rowname2” ...) 열 이름: colname(mtrx) < -c(“colname1’, “colname2” ...)

06 데이터 변형

  • 집단 분할
    1. 벡터: split(vec, fac) → 벡터값과 팩터값 길이 같아야 함
    2. 데이터프레임: split(dfm, fac)
  • 함수 적용
    1. 행렬: apply(mtr, 1, func) / apply(mtr, 2, func)
    2. 리스트: lapply(lst, func) / sapply(lst, func)
    3. 데이터프레임: lapply(dfm, func) / sapply(dfm, func) / apply(dfm, func)
  • 집단 별 적용
    1. tapply(vec, fac, func)
    2. by(dfm, fac, func)
  • 병렬 벡터와 병렬 리스트
    1. 벡터: mapply(func, vec1, vec2, vec3 ...)
    2. 리스트: mapply(func, lst1, lst2, lst3 ...)
  • 문자열
    • 문자열 길이: nchar(“문자열”)
    • 벡터 길이: length(vec)
    • 문자열 연결: paste(“단어”, “문장”, scalar)
    • 하위 문자열 추출: substr(“문자열”, 시작번호, 끝번호)
    • 구분자로 문자열 추출: strsplit(“문자열”, 구분자)
    • 문자열 대체
      • sub(“대상”, “변경”, s)
      • gsub(“대상”, “변경”, s)
  • 날짜
    • %b: 축약된 월 이름 %B: 전체 월 이름 %d: 두자리 일 %m: 두자리 월 %y: 두자리 년 %Y: 네자리 년
    • 문자열 → 날짜
      • as.Data(“2021-01-03”)
      • as.Data(“01/03/2021”, format=“%m/%d/%Y”)
    • 날짜 → 문자열
      • format(Sys.Date(), format=“%m/%d/%Y”)
728x90
반응형