Skip to content

Instantly share code, notes, and snippets.

@hsnks100
Forked from bakyeono/r-note.markdown
Created September 4, 2016 10:20
Show Gist options
  • Save hsnks100/d6e97bedf7d3c7dd6c091811440b5ceb to your computer and use it in GitHub Desktop.
Save hsnks100/d6e97bedf7d3c7dd6c091811440b5ceb to your computer and use it in GitHub Desktop.

R 학습 노트

기본 표현

표현
10
1 + 2
문자열 "string"
논리값 TRUE, FALSE, T, F
대입 x <- 10
참조 x
NA NA

도움말

함수
help() 함수 도움말
example() 함수 사용 예

기본 함수

함수
print() 출력
sum() 합산
rep() 반복
sqrt() 제곱근
sin() 사인

파일

함수
list.files() 파일 목록 출력
source() R 스크립트 로드

벡터

벡터 생성

  • 벡터 생성: c(원소1, 원소2, 원소3, ...)
  • 원소로 다양한 자료형 입력 가능
  • 그러나 동시에 여러 가지 자료형을 입력하면 하나의 자료형으로 통일됨.

수열 백터 생성

  • 시작수:끝수 (경계값 포함)
  • seq(시작수, 끝수) (경계값 포함)
  • seq(시작수, 끝수, step) (경계값 포함)

벡터 첨자 참조 & 대입

  • 벡터 인덱스는 1부터 시작
  • i번째 위치의 값 참조: vector[i]
  • i번째 위치에 대입: vector[i] <- new_value
  • 벡터 길이 증가: 벡터의 끝 또는 그 이후의 위치에 값 대입하면 자동 증가함
  • i번째, j번째, k번째 위치 추출: vector[c(i, j, k)]
  • i번째 ~ j번째 위치 추출: vector[i:j]
  • i번째 ~ j번째 위치에 대입: vector[i:j] <- c(a, b, c, d, e, ...)

벡터 첨자에 이름 붙이기

  • 이름 붙이기: names(배열) <- c("첫번째 칼럼명", "두번째 칼럼명", ...)
  • 이름 보기: names(배열)

벡터 연산

벡터에 값을 연산하면, 벡터 내 모든 원소에 연산이 적용됨.

예)

> 1:3 + 10
[1] 11 12 13

벡터와 벡터를 연산하면, 각 위치의 원소끼리 연산이 적용됨.

예)

> 1:3 * 0:2
[1] 0 2 6
> 1:3 == c(0, 2, 3)
[1] FALSE TRUE TRUE

많은 함수가 벡터의 각 원소에 연산을 적용시킴.

예)

> sqrt(1:3)
[1] 1.000000 1.414214 1.732051

행렬

2차원 벡터라고 할 수 있다.

행렬 생성

  • 행렬 생성: matrix(원소기본값, 행수, 열수)

벡터에 차원값 대입해서 행렬로 변환하기

  • 차원값 보기: dim(벡터)
  • 차원값 대입: dim(벡터) <- c(행수, 열수)

예)

> foo <- 1:8
> foo
[1] 1 2 3 4 5 6 7 8
> dim(foo)
NULL
> dim(foo) <- c(2, 4)
> foo
     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8
> dim(foo)
[1] 2 4

행렬 첨자 참조 & 대입

  • i행, j열 위치의 값 참조: m[i, j]
  • i행, j열 위치에 대입: m[i, j] <- new_value
  • n번째 원소 참조:m[n]
  • i행 참조: vector[i,]
  • j열 참조: vector[,j]
  • i행 ~ j행 참조: vector[i:j,]
  • i열 ~ j열 참조: vector[,i:j]

벡터 첨자에 이름 붙이기

  • 이름 붙이기: names(배열) <- c("첫번째 칼럼명", "두번째 칼럼명", ...)
  • 이름 보기: names(배열)

통계 함수

함수
mean() 산술평균
median() 중간값
sd() 표준 편차

차트

함수 차트 종류
barplot() 막대 차트
plot() 산포도
contour() 등고선 지도
persp() 투시도
image() 행렬 이미지

차트 보조 함수

함수 종류
abline(h = value) 수평 직선 출력
abline(v = value) 수직 직선 출력
legend() 범례 출력

산포도 예제

x <- seq(1, 20, 0.1)
y <- sin(x)
plot(x, y)

등고선 & 투시도 예제

elevation <- matrix(1, 8, 8)
elevation[4,4] <- 0
contour(elevation)
persp(elevation)
contour(volcano)
persp(volcano)
persp(volcano, expand = 0.2)
image(volcano)

NA의 취급

많은 함수에서, NA를 특별하게 취급함.

예)

> sum(c(1, 2, 3, NA, 5, 6))
[1] NA

함수에 na.rm = TRUE 옵션을 주면 NA를 제거하고 연산.

예)

> sum(c(1, 2, 3, NA, 5, 6), na.rm = TRUE)
[1] 17

팩터

고유 값(level)이 할당된 정수 키들의 목록. 자료를 그룹화할 때 사용.

  • factor(벡터): 벡터를 팩터로 변환
  • levels(팩터): 고유 값 백터 출력
  • as.integer(팩터): 정수 벡터 출력

예)

> foo <- factor(c("AAA", "BBB", "CCC", "AAA", "BBB", "AAA", "AAA"))
> foo
[1] AAA BBB CCC AAA BBB AAA AAA
Levels: AAA BBB CCC
> levels(foo)
[1] "AAA" "BBB" "CCC"
> as.integer(foo)
[1] 1 2 3 1 2 1 1

데이터 프레임

여러 개의 벡터를 묶어 하나의 행렬처럼 만듬. 자료형이 다른 칼럼들로 이뤄진 벡터라고 생각됨.

  • 데이터 프레임 생성: data.frame(벡터1, [벡터2, ...])

TODO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment