벡터
R에서는 수나 문자는 기본적으로 벡터(vector)로 취급된다.
벡터를 만들때는 c
함수를 이용한다. c
는 combine의 약자이다.
c(1,2,3,4,5)
[1] 1 2 3 4 5
벡터를 출력하면 화면에 [1]
과 같은 표시가 나오는 데, 이것은 이 표시의 오른쪽에 있는 값이 벡터에서 몇번째인지를 순서를 의미한다.
길이가 더 긴 벡터를 만들어 준다.
c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
[1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
[25]
는 5
가 벡터에서 25번째임을 의미한다.
벡터의 사칙연산
벡터끼리 연산을 하면 같은 자리에 있는 값들끼리 연산을 한다.
벡터를 만들어 변수 x
와 y
에 넣는다.
x = c(1,2)
y = c(3,4)
x + y 연산을 한다.
벡터의 덧셈 연산을 통해 [1] 4 6
이 출력됨을 확인 할 수 있다.
x + y
[1] 4 6
x - y 연산을 한다.
벡터의 뺄셈 연산을 통해 [1] -2 -2
이 출력됨을 확인 할 수 있다.
x - y
[1] -2 -2
x * y 연산을 한다.
벡터의 곱셈 연산을 통해 [1] 3 8
이 출력됨을 확인 할 수 있다.
x * y
x / y 연산을 한다.
벡터의 나눗셈 연산을 통해 [1] 0.3333333 0.5000000
이 출력됨을 확인 할 수 있다.
x / y
벡터끼리 길이가 같지 않을 경우, 짧은 쪽을 긴 쪽에 반복 적용한다. c(1, 2, 3, 4, 5)
에 2
를 곱하면, 각각에 2를 곱하게 된다.
c(1,2,3,4,5) * 2
seq() 함수를 이용해 수열벡터 만들기
seq
는 sequence의 약자이다
1 부터 10 까지 연속적인 숫자를 원소로 갖는 벡터를 만들어 준다.
seq(1, 10)
1 부터 100 까지 연속적인 숫자를 원소로 갖는 벡터를 만들어 준다.
seq(1, 100)
1 부터 100 까지 5 간격으로 연속적인 숫자를 원소로 갖는 벡터를 만들어 준다.
seq(1, 100, 5)
:을 이용해 수열 벡터 만들기
1:10
는 seq(1, 10)
와 동일하다.
1:10
3:15
는 seq(3, 15)
와 동일하다.
3:15
인덱싱
벡터 c(46, 27, 38)
를 만들어 x
에 저장한다.
x = c(46, 27, 38)
x[1]
로 벡터 x에 첫번째 원소에 접근한다.
46
이 출력됨을 확인 할 수 있다.
x[1]
x[2]
로 벡터 x에 두번째 원소에 접근한다.
27
이 출력됨을 확인 할 수 있다.
x[2]
여러 값 익덱싱
[ ]안에 새로운 벡터를 만들어서 여러개의 원소를 꺼내준다
x[c(1,2)]
의 결과 첫번째와 두번째 값이 출력됨을 확인 할 수 있다
x[c(1,2)]
x[c(1,3)]
의 결과 첫번째와 세번째 값이 출력됨을 확인 할 수 있다
x[c(1,3)]
범위 인덱싱
1에서 2번째까지 벡터의 원소가 출력된다.
x[1:2]
1에서 3번째까지 벡터의 원소가 출력된다.
x[1:3]
2에서 3번째까지 벡터의 원소가 출력된다.
x[2:3]
rep() 함수를 이용해 반복적인 원소를 갖는 벡터 만들기
rep
는 repeat의 약자이다
rep(0 , 10)
결과 0을 10번 반복해서 원소로 출력된다.
rep(0 , 10)
rep(5 , 7)
결과 5를 7번 반복해서 원소로 출력된다.
rep(5 , 7)
x
벡터의 3번째 원소를 7번 반복한다.
x[rep(3 , 7)]