Basic Objects - Vector

Page content

공지

본 Tutorial은 강사에게 강의를 듣는 과거-현재-미래 학생들을 위해 작성하였습니다.

이 글을 읽어주시는 분들에게 작은 도움이 되기를 바랍니다.

I. 벡터

본 포스트는 프로그래밍과 R을 처음 배우는 사람을 위해 작성하였습니다. 짧게 읽어두시기를 바랍니다. 공부하실 때는 복잡하게 생각하지는 마시기를 바랍니다. 영어의 기본단어 및 문법을 배우듯이 그냥 받아들이시기를 바랍니다.

벡터(Vector). R에서 다루는 가장 작은 단위값의 데이터다. 1차원으로 구성이 되어 있다.

(1) 4가지 벡터

크게 4가지의 벡터가 존재한다. 간단하게 코드를 작성해보자.

xNum <- c(1, 3.14, 5, 7)
xLog <- c(TRUE, FALSE, TRUE, FALSE)
xChar <- c("가", "나", "A", "B")
xMix <- c(1, TRUE, "Hello R!")

이렇게 작성한 코드는 실행한다. 실행할 때, 윈도우 사용자는 Ctrl + Enter, Mac사용자는 Command + Enter를 사용한다.

이렇게 크게 4개의 유형으로 정리할 수 있다. 이를 출력하는 방법은 크게 2가지다. print(xNum) 또는 xNum. 결과값을 확인하는데, 지금은 어떠한 방법으로 사용해도 무관하지만, print(xNum)으로 습관을 가져가는 걸 추천한다. If-else, For-loop 문을 사용할 때 매우 유용하다.

그럼 print(xNum)을 실행하여 결과값을 확인해보자.

print(xNum)
## [1] 1.00 3.14 5.00 7.00

이번에는 xNum을 실행해보자.

xNum
## [1] 1.00 3.14 5.00 7.00

보시다시피, 결과값의 큰 차이는 없다. xLog, xChar도 동일하게 실행하본다.

(2) 벡터 추가 (Append)

벡터 추가하는 방법을 배워보자. 어려운 건 아니다. 자유자재로 벡터를 추가할 수 있다. 이 때 주의해야 하는 것은 동일 성질의 값을 입력해야 한다.

문자는 문자열끼리, 숫자는 숫자열끼리, 안 그러면 데이터가 Mix가 된다. 이 때 print가 아닌 출력할 때는 message + cat 함수를 활용해 본다.

x <- c(2, 4, 6, 8)
x2 <- c(x, x)
x3 <- c(x2, 10)
message(cat("Current x: ", x))
## Current x:  2 4 6 8
## 
message(cat("Current x2: ", x2))
## Current x2:  2 4 6 8 2 4 6 8
## 
message(cat("Current x3: ", x3))
## Current x3:  2 4 6 8 2 4 6 8 10
## 

이렇게 추가할 수 있다.

(3) 데이터 요약 summary()

각각의 벡터는 일종의 정보라고 생각해야 한다. 벡터 1개를 가지고도 매우 쉽게 다양한 분석을 할 수 있다. 이것이 R의 장점이기도 하다. 이 때 쉽게 데이터를 요약하는 함수가 summary()이다.

summary(xNum)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.605   4.070   4.035   5.500   7.000

4개의 데이터에서도 값이 출력된다. 문자열과 논리형 벡터는 어떨까?

  • 먼저 문자열을 보자
summary(xChar)
##    Length     Class      Mode 
##         4 character character

간단하게 Length 즉 여기서는 벡터 내에 존재하는 문자열 개수를 표현한다.

  • 논리형은 어떻게 출력될까?
summary(xLog)
##    Mode   FALSE    TRUE 
## logical       2       2

이렇게 각 값의 따라 갯수로 출력되는 걸 볼 수 있다.

(4) 벡터의 length 확인

length는 일종의 데이터프레임에서 행의 개수와도 같다. 빠르게 확인해보자.

length(xNum)
## [1] 4

(5) xMix 데이터는 어떻게 변할까?

아직까지 다루지 않은 내용에 대해 다룬다. 이러한 데이터는 데이터셋의 크기가 매우커서 전체를 확인하지 못할 때 종종 마주칠 수 있다. 데이터 입력값의 오류인데, 이러한 오류를 인지하지 못하면 분석은 원하는대로 가지 못하고 우왕좌왕 할 때가 많다.

특히, 엑셀 데이터를 수집해서 하는 분석은 이러한 데이터 Mix가 종종 일어나니, 꼭 주의해야 하는 경우다.

print(xMix)
## [1] "1"        "TRUE"     "Hello R!"

각각의 값이 쌍따옴표 "값"이 붙어있는 것을 봐서는 문자열로 변했다. 이상하지 않은가? 원래 의도한 입력값은 숫자형이었기 때문이다.

그런데, 만약 이 때 1에 1을 더해서 2로 바꾸고 싶다면 어떻게 해야할까?

(6) 인덱싱과 형변환

인덱싱은 일종의 각 요소에 대해 접근하는 방법이다. 어려운 건 아니다. 우선 1에 접근을 해보자.

xMix[1]
## [1] "1"

xMin[접근하고 싶은 위치의 숫자]를 입력하면 원하는 데이터를 확보할 수 있다. 그럼, 이제 데이터 타입을 변환해서 숫자형으로 바꿔본다. 이것 역시 어떤 함수가 쓰이는지 확인하는 것으로 이해하기를 바란다. 이 때에는 왜, 이 함수를 쓰는가? 보다는, 아, 이 함수를 쓰면 바뀌는구나 것으로 이해하기를 바란다.

as.numeric(xMix[1])
## [1] 1

보시다시피 1사이에 쌍따옴표가 사라졌다. 이제 1을 더해본다.

as.numeric(xMix[1]) + 1
## [1] 2

바뀌었다. 이제 바뀐 값을 적용하면 된다.

xMix[1] <- as.numeric(xMix[1]) + 1
print(xMix)
## [1] "2"        "TRUE"     "Hello R!"

2로 바뀐 것을 확인할 수 있다.

2. Reference

Chapman, C., & Feit, E. M. D. (2015). R for marketing research and analytics. Cham: Springer.