본문 바로가기
데이터 어쩌구/통계 ・ 수학

[실습] (1) R 기본 개념과 기초 함수

by annmunju 2020. 12. 22.

 

1. 변수

 1) 개념

  (1) 변수(Variable) : 데이터 분석의 대상, 다양한 값을 지니고 있는 하나의 속성

  (2) 상수(Constant) : 고정된 값, 분석의 대상이 될 수 없음

 2) 변수 만들기

  (1)'<-' '=' 이용해서 변수 만들기

  (2) x <- c(1, 2, 3) 이용해서 변수(벡터) 한꺼번에 저장하기

  (3) 벡터이름[몇번째] : 백터의 몇번째 원소

 3) 변수 타입

  (1) 연속 변수 (Numeric 타입, 양적 변수, Quantitative Variable) vs 범주 변수 (Factor 타입, 명목 변수, Nominal Variable)

  (2) 연속 변수의 값으로 할 수 있는 연산 : 값이 같은지 다른지 / 순서와 크기 비교 / 사칙 연산

 

2. 데이터 프레임

 1) 데이터 구조

  (1) 벡터 (1차원, 한 가지 변수 타입으로 구성)

  (2) 데이터 프레임 (2차원, 다양한 변수 타입으로 구성)

  (3) 매트릭스 (2차원, 한 가지 변수 타입으로 구성)

  (4) 어레이 (다차원, 2차원 이상의 매트릭스)

   (5) 리스트 : 다차원, 서로 다른 데이터 구조 포함

 2) 데이터 프레임(Data Frame) : 행과 열로 구성된 표.

  (1) 열은 컬럼(Column) 또는 변수 (Variable), 행은 로(Row) 또는 케이스(Case)

  (2) 데이터 프레임 만들기 : data.frame() 함수 이용

 

3. 패키지

 1) 패키지 설치 > 로드(스크립트 시작할 때 마다) > 함수 사용

 2) 패키지 설치 방법 : install.packages("패키지이름")

 3) 패키지 로드 방법 : library(패키지이름)

 

4. 외부 데이터 불러오기

 1) 엑셀 library(readxl) ; read_excel()

 2) csv 파일 읽어오기 read.csv() -> 파일로 저장하기 writer.csv()

 3) rda 파일 load() -> 파일로 저장하기 save(데이터프레임명, file ="데이터프레임명.rda")

 

5. 기초 함수

 1) mean(), max(), min() : 평균, 최댓값, 최솟값

 2) sqrt(), abs() : 제곱근, 절대값

 3) ?함수이름 : 설명(도움말)

 4) ls() : 변수 목록 확인

 5) rm() : 변수 삭제

 6) seq(시작값, 최대값, 간격) : 간격이 일정한 리스트 만들기

 7) rename(데이터 프레임명, 새 변수명 = 기존 변수명) : 변수명 바꾸기

 

6. 데이터 파악하기

 1) head() 데이터 미리보기 출력

 2) tail() 데이터 마지막부분 출력

 3) View() 뷰어 창에서 데이터 보기

 4) dim() 데이터가 몇 행, 몇 열로 이루어져 있는지 확인

  (1) nrow(), ncol() : 데이터의 행의 개수, 열의 개수

 5) str() 데이터 속성 출력 *파이썬 string(문자열)과 혼동 주의

  (1) obs : 관측치 (행의 수)

  (2) variables : 변수 (열의 수)

  (3) 데이터 유형 : num(수치형), int(정수형), chr(문자형) ...

 6) summary() 요약 기초통계량 출력

  (1) Min, 1st qu, median, mean, 3rd qu, max

  (2) Na = 결측치

 7) which(데이터프레임$변수명 == ) : 값이 맞는 위치 행 출력

  (1) which.max(), which.min() : 값 최대인 위치, 값 최소인 위치

 

7. 데이터 요약하기

 1) hist() : 히스토그램

 2) plot(x축 변수, y축 변수) : 산점도

 3) table(변수) : 변수에 대한 빈도 분포표 작성

 4) tapply(살펴볼 변수, 데이터 구분 변수, 함수) : 변수 두개, 함수를 조건으로 해서 비교

  (ex1) tapply(apple$numRatingTotal, apple$type, mean) : 타입 free paid에서 ratingtotal의 평균

  (ex2) tapply(apple$numRatingTotal, apple$type, mean, na.rm = True) < 결측치 제외

 5) 순서대로 정렬하기

  (1) 오름차순 : arrange()

  (2) 내림차순 : arrange(desc())

 6) 집단 별로 요약하기

  (1) summarise()

  (2) group_by()

 

8. 변수 변형하기

 1) 데이터프레임$변수이름 = c(  ,  ,  ,  ) : 데이터 프레임에 변수를 추가해 우변의 값을 저장

 2) subset (데이터프레임, 서브셋 조건) : 원하는 부분 집합 분리해 새로운 데이터 프레임 만들기

 3) mutate() : 여러 파생변수를 한 번에 추가

  (1) mutate() ifelse()를 적용하면 조건에 따라 분류 가능

 4) 데이터 전처리 (dplyr 패키지)

  (1) 데이터 추출하기 : filter() 초과, 미만, 이상, 이하 조건 등도 걸 수 있음

  (2) 필요한 변수만 추출하기 : select()

 5) 데이터 합치기

  (1) 가로로 합치기 left_join()

  (2) 세로로 합치기 bind_rows()

 6) 결측치 정제하기 (NA)

  (1) fillter()를 사용해 제외하거나 평균으로 대체(결측치 대체법(Imputation))

  * mean(데이터프레임$변수명, na.rm=TRUE) : 결측치 제외 옵션 설정 (결측치 포함되면 계산 안 됨)

 7) 이상치 정제하기 (정상 범주에서 크게 벗어난 값)

 (1) 1사분위수 이하와 제3사분위수 이상(사분위 범위 밖)

 (2) 산점도 확인 후 극단값 분류 > 산점도 재확인해 잘 정제되었는지 보기

 

 

 

728x90