벡터
수치형 벡터 만들기
r
c(1,2,3,4)
seq(1, 10, 2)
rep(2, 5)
1:9
c(1, 2, 3, 4):[1, 2, 3, 4]만들기seq(a, b, t): a부터 b까지 t만큼 증가하는 수열rep(x, y): x를 y번 반복하는 벡터 생성x:y: x부터 y까지의 수열 생성
문자형 벡터 만들기
r
c("사과", "배", "포도", "수박")
논리형 벡터 만들기
r
c(True, False, T, F)
벡터 활용하기
벡터 인덱싱
인덱싱 ⇒ 대괄호로 진행
- 하나의 값에는 대괄호에 숫자 넣기.
- 복수의 값에는 대괄호에 벡터 넣기.
- 음수를 넣으면 그 값을 제외하는 것.
- 조건식을 넣으면 해당 조건 만족하는 벡터 선택.
r
region = c("Seoul", "Incheon", "Daegu", "Daejun", "Gwangju", "Busan")
region[1]
region[c(1,3,5)]
region[-1]
region[-c(1,3,5)]
important = c(1,2,3)
region[important]
region[important][1]
이름 넣고 인덱싱
names()함수를 이용해 인덱싱한다.- 이름을 붙인 뒤 인덱싱을 시도해 보자.
r
region_code = c(012, 003, 034, 095)
names(region_code) = c("춘천", "철원", "논산", "서귀포")
region_code[c("춘천", "서귀포")]
r
# 결과
> region_code = c(012, 003, 034, 095)
> names(region_code) = c("춘천", "철원", "논산", "서귀포")
> region_code[c("춘천", "서귀포")]
춘천 서귀포
12 95
데이터 추가
- 벡터 안에 벡터를 넣어 이어붙이면 된다.
- 새 원소를 추가했을 때 중간이 비어있다면, NA 값을 넣는다.
r
old = c(2, 4, 6, 8)
old2 = c(10, 12, 14, 16)
new = c(old, old2); new
new[10] = 20
new
r
# 결과
> new = c(old, old2); new
[1] 2 4 6 8 10 12 14 16
> new[10] = 20
> new
[1] 2 4 6 8 10 12 14 16 NA 20
>
벡터 연산
r
v1 = seq(2, 10, 2)
v2 = c(1, 2, 3, 4, 5)
v1 + v2
v1 - v2
v1 * v2
v1 / v2
v1 ^ v2
r
# 콘솔
> v1 + v2
[1] 3 6 9 12 15
> v1 - v2
[1] 1 2 3 4 5
> v1 * v2
[1] 2 8 18 32 50
> v1 / v2
[1] 2 2 2 2 2
> v1 ^ v2
[1] 2 16 216 4096 100000
재활용
- R언어의 중요한 컨셉 중 하나다.
- 벡터의 길이가 서로 달라도, 계산이 가능하게 만든다.
- 처음으로 돌아가 다시 원소들을 ‘재활용’하기 때문.
- 왠만해서는 사용하지 않는 것을 권고한다.
r
a=1:6
b=1:3
a*b
r
> a=1:6
> b=1:3
> a*b
[1] 1 4 9 4 10 18