R 학습 노트
R 다운로드: http://www.r-project.org
기본 표현
표현 | 예 |
---|---|
수 | 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
> fookkkkkkk2 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, ...])