열렬히.뛰기

벡터

Language > 프로그래밍 언어 > R > R언어 : 자료구조 > 벡터

벡터

수치형 벡터 만들기

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