지난 포스팅에는 '동일한 데이터형 박스가 연속해서 있는 것'이 벡터라고 설명드렸고, 간단한 벡터 생성 방법을 알아보았습니다. 이번 포스팅에서는 다양한 방법을 통해서 손쉽게 벡터 만드는 방법에 대해 알아보도록 하겠습니다.
| 연속적인 숫자 벡터 생성
기본적인 벡터 생성은 'a <- c(1,2,3)'이라는 형식으로 만들 수 있다고 말씀드렸습니다. 그런데 자료가 1부터 100까지 입력을 한다면 어떻게 해야 할까요? 우리는 은근과 끈기의 민족이기 때문에 1부터 100까지 데이터를 다음과 같은 형식으로 'a <- c(1, 2, … , 99, 100)' 끈기 있게 하나씩 모두 입력을 해도 됩니다.
하지만 이렇게 입력을 할 경우 사람이기 때문에 실수도 할 수도 있고, 불필요한 시간이 너무 많이 들어가게 됩니다. 우리가 R과 같은 툴을 사용하는 이유는 데이터의 분석에 집중하기 위함입니다. 따라서 이렇게 하나씩 에러 없이 타이핑을 통해 데이터를 입력을 한다면 뿌듯함을 느낄 수 있겠지만 R의 본연의 목적과는 맞지 않다고 생각합니다.
잠시 이야기가 많이 다른 곳으로 흘렀는데요. R에서는 데이터 분석에 집중할 수 있도록 하기 위하여 다양한 데이터 패턴들을 편리하게 입력할 수 있는 도구를 제공해 주고 있습니다. R에서 1부터 100까지의 연속적인 숫자를 만들기 위해서는 다음과 같은 형식을 취하면 됩니다
t <- from:to
여기에서 from은 연속적인 숫자의 시작, to는 연속되는 숫자의 마지막 숫자입니다. 시작과 마지막 중간에 :(콜론)은 반듯이 있어야 합니다. 이렇게 설명을 드리면 감이 잘 안 오실 텐데요. 실습을 통해 명확히 알아보도록 하겠습니다.
실습을 위해서 RStudio를 실행하고, Ctrl + N 키를 눌러 console 화면을 클리어 시킵니다. 그 뒤에 아래의 코드를 입력해 봅니다. ('#'주석은 입력하지 않아도 됩니다)
# 1부터 100까지 연속적인 숫자 벡터 생성
t1 <- 1:100
t1
# 20부터 40까지 연속적인 숫자 벡터 생성
t2 <- 20:40
t2
| 일정한 간격의 숫자로 이루어진 벡터 생성
1부터 100까지 숫자에서 짝수 혹은 홀수만 만들어야 할 때가 있습니다. 이럴 때 앞서 말씀드린 것처럼 한 땀 한 땀 장인의 손길을 담아 한자씩 입력하며 인간승리를 느낄 수도 있습니다. 하지만 우리가 R과 같은 툴을 사용하는 이유는 조금이라도 불필요한 수고를 줄이고, 데이터 분석에 집중하는데 목적이 있다고 말씀드렸습니다. 때문에 R에서는 이런 편의성을 위해 일정한 간격의 숫자를 만들 수 있는 함수를 제공하고 있습니다.
'함수'라는 개념이 처음 나왔는데요. 쉽게 '( )괄호'안에 입력값을 넣으면 괄호 앞 함수명에 해당하는 기능을 처리하고 결과를 주는 것이라고 이해하시면 됩니다. 프로그래밍적인 개념이라 이해가 어려우시면 'R에서는 '( )'괄호가 붙어 있는 것은 함수고, 특정한 기능을 하는 것이다'라고 생각하시면 됩니다.
일정 간격의 숫자로 이루어진 벡터를 만드는 seq( ) 함수는 사용방법은 'seq(from, to, by)' 형태를 따르면 됩니다.
from은 시작하는 숫자를 to는 마지막 숫자를, by는 증가하는 숫자 값입니다.
예를 들어 1부터 50까지 숫자에서 홀수 데이터만 벡터 데이터를 만든다면, seq(1, 50, 2)를 입력하면 됩니다.
10부터 100까지 5씩 증가하는 값이 입력이 되길 원한다면, seq(10, 100, 5)라고 사용하면 됩니다.
실습을 위해 RStudio에서 Ctrl + L 키를 입력하고 화면을 지운 다음, 아래의 코드를 입력해 보시길 바랍니다.
# 1부터 50까지 숫자중 홀수로 형성된 벡터 생성
t3 <- seq(1, 50, 2)
t3
# 100부터 100까지 숫자중 5의 배수 벡터 생성
t4 <- seq(10, 100, 5)
t4
| 반복되는 숫자 벡터 생성
10을 연속해서 20번을 입력해야 한다면, 한번 데이터를 입력해서 복붙(복사, 붙이기)으로 해결할 수 있을 겁니다. 하지만 R에서는 이러한 것도 함수로 제공하고 있습니다. 이렇게 반복되는 숫자로 이루어진 벡터 데이터를 만들려면 rep( ) 함수를 이용하면 됩니다.
rep() 함수의 기본 사용 형태는 'rep(x, times)'입니다. 여기에서 x는 벡터 데이터(숫자), times는 몇 회 반복할 것인지를 의미합니다.
앞서 설명드린 10을 연속해서 20번 반복하는 것을 예로 설명드리면 rep(10, 20)으로 입력하면 됩니다. R에서 실습을 하여 확인한다면 다음과 같이 해보시면 됩니다.
# 10이 20번 반복되는 벡터 생성
t5 <- rep(10, 20)
t5
1부터 4까지 5번 반복을 한다면 rep(1:4, 5)라고 입력을 하면 됩니다.
# 1부터 4값이 5번 반복하는 벡터 생성
t6 <- rep(1:4, 5)
t6
반복되는 숫자가 연속되지 않은 경우는 다음과 같이 함수에 벡터 값을 집어넣고, 반복 횟수를 입력하는 방법으로 만들 수 있습니다.
# (1,9,5)값이 3번 반복되는 벡터 생성
t7 <- rep(c(1,9,5), 3)
t7
지금까지 여러 가지 벡터 생성 방법을 알아보았습니다. 여러 번 말씀드렸지만 프로그램을 빨리 습득하는 방법은 효율성이 떨어진다고 생각될 수도 있겠지만 직접 코드를 입력하고, 결과를 확인하고 궁금한 것은 타이핑하며 실행해 보고 확인하는 방법입니다. 여기에 소개해 드린 코드 말고도 다양한 코드를 테스트해 보셔서 빠르게 실력을 향상시켜 보시길 바랍니다.
노잼인 포스팅, 끝까지 봐주셔서 감사드립니다.
'프로그래밍언어(코딩) > R' 카테고리의 다른 글
[R 공략집] 벡터에서 데이터 가져오기 (1) | 2020.09.10 |
---|---|
[R 공략집] 벡터 (1) | 2020.08.20 |
[R 공략집] 데이터 타입 (0) | 2020.08.19 |
[R 공략집] 기본 연산자 (0) | 2020.08.17 |
[R 공략집] 변수 사용하기 (0) | 2020.08.16 |
댓글