-
R 프로그래밍 5 - 수열 만들기(rep,seq)데이터분석/R 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까지 증가시켜라" 가 됩니다.
결과창은 이렇게 나옵니다.
그럼 반대로 15부터 1씩 감소하는 등차수열을 만들어야하면 어떻게 할까요?
a <- 15:1
반대로 해주시면 됩니다.
- 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를 활용을 해도 되고 안해도 되는데요.
활용을 하든 안하든 결과는 같습니다.
- 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프로그래밍 할때 자주 쓰이는 함수로 잘 활용하면 정말로 유용한 함수 입니다.
반응형'데이터분석 > R' 카테고리의 다른 글
R 프로그래밍 7 - 패키지와 샘플데이터(packages, sample data) (0) 2021.11.03 R 프로그래밍 6 - R에 CSV파일 불러오기 (0) 2021.01.10 R 프로그래밍 4 - R 문법 기초3 반복문(for, while, repeat)과 함수(function) (0) 2021.01.02 R 프로그래밍 3 - R 문법 기초2 연산자 와 조건문(if, else if, ifelse) (1) 2021.01.01 R 프로그래밍 2 - R 문법 기초1(변수선언 및 삭제, 자료형태) (0) 2020.12.31