R:자료형

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

R언어 공부를 위한 틀 틀:R

  1. R:개요
    1. R:코딩팁
    2. R:연산자
  2. R:객체
    1. R:자료형
    2. R:자료구조
  3. R:함수
    1. R:자주사용하는 함수
      1. R:aplly계열(반복문, 중복작업)
  4. R:제어문
    1. R:조건문
    2. R:반복문
  5. R:자료조작
    1. R:데이터프레임
    2. R:행렬
  6. R:데이터 저장과 불러오기
    1. R:데이터베이스
    2. R:특정조건 추출하기
  7. R:패키지
    1. R:magrittr(파이프연산자)
    2. R:dplyr(데이터프레임 조작)
    3. R:ggplot2(그래프그리기)
    4. R:KoNLP(한글 텍스트마이닝), wordcloud2(워드클라우드)
    5. R:ddply(데이터 집계, 조작)
    6. R:tidyverse(데이터를 정제하는 패키지들의 집합)
    7. R:jsonlite(JSON 파일 다루기)
    8. R:pbapply(apply계열에 진행바를 보여준다.)
  8. R:활용
    1. R:데이터 접근
    2. R:연관성분석
    3. R:분류분석
  9. R:팁
    1. R:연구용 팁

변수형

변수타입 기원 설명
chr character 문자열
int integer 정수
num numeric 자연수
Factor 명목형 변수
Posixct 시간변수(년월일시분초)
Tseries 시계열 변수
an Null

NA

결측치(빈 값)
변수명 설명 정보량 변환
명목형변수 특성에 따라 명칭을 주어 구분하는 변수 아래로 갈수록 정보량이 많아진다. 아래에서 위로 변환은 가능하지만,

위에서 아래로의 변환은 정보량 부족으로 불가.

서열형변수 명목형변수에서 서열정보 추가
연속형변수 셀 수 없으며, 구간(0~10)으로 정의되는 변수

데이터 파악 관련함수

이름 기원 기능 사용법
str() 데이터의 타입 확인 str(데이터)
is() is 데이터의 타입 확인

str이 변수타입을 알려준다면,

is는 참과 거짓으로 알려준다.

결과값은 기존 데이터형의 좌표목록으로 나온다.

is.integer(데이터)
as() as 변수타입을 바꾼다. as.integer(데이터)
summary() summary 해당 데이터의 요약정보를 본다.

변수타입과 관련 정보들을 보여준다.

데이터형 결과
Factor Low, Mid, High에 해당하는 집계를 보여준다.
Numeric 최솟값, 최대값, 평균, 각 분위수

1분위수는 하위 25%에 해당하는 값.

2분위수는 Median으로 나타나고,

3분위수는 상위 25%에 해당하는 값.

summary(데이터)

데이터 조작 관련함수

데이터 수치 조작

이름 기원 기능 사용법
quantile() qunatile 각 분위수에 해당하는 값을 꺼낸다. quantile(데이터셋$열이름, probs = c(0.1, 0.3, 0.5, 0.7, 0.9)

10, 30, 50, 70, 90%에 해당하는 값들을 보여준다.

[이걸 변수에 저장하거나 하진 못하나?]

sum() sum 합. sum(데이터셋$열이름)
rowSums() 행별 합. rowSums(데이터셋[범위])

rowSums(데이터셋[2:8])

colSums() 열별 합. colSums(데이터셋[범위])
mean() mean 평균. mean(데이터셋$열이름)
rowMeans() 행별 평균. rowMeans(데이터셋[범위])
sd() 표준편차 sd(데이터셋$열이름)

위 연산들에서 결측치를 생략하고 계산하고자 한다면 뒤에 na.rm=True를 붙여주면 된다. ex) sum(데이터셋[범위], na.rm=True)

데이터 통계

이름 기원 기능 사용법
table() table 빈도 테이블 작성.

열 안에 속한 요소가 몇 번씩 등장하는지 세어 테이블로 만든다.

테이블명 = as.data.frame(table(데이터셋$열이름))
xtabs() 2차원 테이블 작성.

열이름1과 열이름2 안에 나타나는 조합의 수별로 몇 번씩 등장하는지 센다.

테이블명 = as.data.frame(xtabs(~ 데이터셋$열이름1 + 데이터셋$열이름2))

시간변수 다루기

3가지 방법이 있다.

방법 사용처 사용예시
as.Date() 년-월-일 형태 as.Date(변수, formet="날짜형식")

as.Date(2020-08-03, formet="%Y-%m-%d"

as.POSIXct() 년-월-일 시:분:초 형태
lubridate패키지

날짜형식

2020년 1월 22일 23시 24분 25초 월요일 이라고 할 때의 데이터 표시를 알아보자.

형식 예시 형식 예시
세기 %C 20세기
%Y 2020 %y 20
%m 01 %B 1월
%b 1
%d 22
%H 23 %l 11
%p PM
%M 24
%S 25
요일 %a %A 월요일
%u 1~7

(1:월요일)

%w 0~6

(2:월요일)


시간변수 관련함수

이름 기원 기능 사용법
format() 형식에 해당하는 데이터만 뽑는다. format(날짜변수, "형식")

문자열 관련함수

이름 기원 기능 사용법
substr() 문자열 추출 substr(데이터, 시작번호,끝번호)

substr(데이터셋$열이름[인덱스], 1, 5)

paste() 문자열 붙이기

맨 뒤에 ,set="사이에 넣을 것" 을 사용하면 붙일 문자들 사이에 들어갈 것을 지정할 수 있다.

(기본설정은 띄어쓰기 한 칸)

paste(colnames(데이터셋)[숫자], " ", 연산))) 형태로 쓸 수 있다.

paste(데이터, "붙일문자", "붙일문자2", ....)
strsplit() 문자열 분리

"나눌문자열"을 기준으로 문자열들을 나눈다.

strsplit(데이터, split="나눌문자열")
gsub() 문자열 대체 gsub("원래문자열", "대체할문자열", 데이터)

쓸 만한 활용법

의도 방법
열별 결측치 카운팅 colSums(is.na(데이터셋))
결측치가 들어간 행 지우기 데이터셋 = na.omit(데이터셋) 그러나, 결측치 비율이 상당할 경우 위험한 작업이다.
특정 데이터에 결측치가 들어간 경우 삭제 데이터셋 = 데이터셋[complete.cases(데이터셋[범위]), ]
결측치에 일정 값 부여 데이터[is.na(데이터)] = 일정값 일반적으로 연속형변수의 경우, 평균으로 대체하고,

이산현병순의 경우, 최빈값으로 대체한다.