데이터분석/R

R 프로그래밍 5 - 수열 만들기(rep,seq)

devbean 2021. 1. 3. 21:52
반응형

안녕하세요

오늘은 R 에서 어떻게 수열을 만드는지에 대해서 알아보겠습니다.

 

수열 만들기

수열은 무엇일까요?  또는 다른 대상의 순서 있는 나열

 

R에서 간단하게 수열을 만드는 법에 대해서 알아보도록 하겠습니다.


- 숫자:숫자

 

예를 들어 봅시다.

초기값이 1이고 등차가 1인 수열을 15까지 입력을 해야한다면 여러분은 어떻게 하실건가요?

A <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)

이렇게 무식하게 다 넣는 방법도 있습니다. 그런데 이걸 1000까지 늘려야 한다면?

엄청난 단순노동이 필요하겠죠?

 

이는 :를 이용해서 간단히 해결할 수 있습니다.

a <- 1:15

R에서는 이렇게 코딩을하면 "1부터 순차적으로 1씩 증가해서 15까지 증가시켜라" 가 됩니다.

 

결과창은 이렇게 나옵니다.

R 프로그래밍 등차 수열 예시 1

 

그럼 반대로 15부터 1씩 감소하는 등차수열을 만들어야하면 어떻게 할까요?

a <- 15:1

R 프로그래밍 등차 수열 예시 2

반대로 해주시면 됩니다.

 


- seq 함수(sequence)

 

=seq(시작숫자, 끝숫자, by=몇씩증가시킬건지)

seq함수는 특정 숫자에서 등차수열을 만들때 활용하는 함수 입니다.

 

그럼 1부터 등차가 2씩 증가하는 수열은 어떻게 만들 수 있을까요?

seq 함수를 활용해봅시다.

 

예를 들어 1 부터 등차가 2씩 증가 29까지 증가하는 함수는 어떻게 만들 수 있을까요?

#from, to 생략
b <- seq(1,29,by=2)

1: 1부터
29: 29까지
by=2: 2씩 증가시켜라

#from, to 문법
c <- seq(from=1,to=29,by=2)

from=1: 1부터
to=29: 29까지
by=2: 2씩 증가시켜라

from과 to를 활용을 해도 되고 안해도 되는데요.

활용을 하든 안하든 결과는 같습니다.

 

R 프로그래밍 seq 함수 예시 


- rep 함수(repeat)

rep 함수는 같은 숫자나 문자를 반복해서 수열로 만들어 주는 함수입니다.

=rep(반복할 숫자벡터, 반복 횟수)

 

#벡터자체를 3번 반복함
d <- rep(c(1,2),3)

#each: 각각 원소를 반복함
e <- rep(c(1,2),each=3)

#time: 벡터자체를 3번 반복함
f <- rep(c(1,2),times=3)

#문자열도 가능
g <- rep(c("가나다","라마바"),3)

위의 코드에 대한 결과

이런식으로 하나의 백터를 단순히 반복을 해주는 것인데요.

 

여기서 봐야할것은 each와 times입니다.

 

each: 각 벡터의 원소를 차례대로 반복

 

위의 예시

e <- rep(c(1,2),each=3)

 

1과 2를 차례대로 3번씩 반복해라 -> 결과 1 1 1 2 2 2

 

times: 벡터 자체를 반복

 

위의 예시

e <- rep(c(1,2),each=3)f <- rep(c(1,2),times=3)

 

(1, 2) 백터를 3번씩 반복해라 -> 결과 1 2 1 2 1 2

 

유념해서 활용하면 유용한 함수 입니다!


마치며

오늘은 R에서 수열을 만드는 함수에 대해서 알아봤습니다.

위의 함수는 R프로그래밍 할때 자주 쓰이는 함수로 잘 활용하면 정말로 유용한 함수 입니다.

반응형