본 Tutorial은 강사에게 강의를 듣는 과거-현재-미래 학생들을 위해 작성하였습니다.
이 글을 읽어주시는 분들에게 작은 도움이 되기를 바랍니다.
본 포스트는 프로그래밍과 R을 처음 배우는 사람을 위해 작성하였습니다. 짧게 읽어두시기를 바랍니다. 공부하실 때는 복잡하게 생각하지는 마시기를 바랍니다. 영어의 기본단어 및 문법을 배우듯이 그냥 받아들이시기를 바랍니다.
벡터(Vector
). R에서 다루는 가장 작은 단위값의 데이터다. 1차원으로 구성이 되어 있다.
크게 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도 동일하게 실행하본다.
벡터 추가하는 방법을 배워보자. 어려운 건 아니다. 자유자재로 벡터를 추가할 수 있다. 이 때 주의해야 하는 것은 동일 성질의 값을 입력해야 한다.
문자는 문자열끼리, 숫자는 숫자열끼리, 안 그러면 데이터가 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
##
이렇게 추가할 수 있다.
각각의 벡터는 일종의 정보라고 생각해야 한다. 벡터 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
이렇게 각 값의 따라 갯수로 출력되는 걸 볼 수 있다.
length는 일종의 데이터프레임에서 행의 개수와도 같다. 빠르게 확인해보자.
length(xNum)
## [1] 4
아직까지 다루지 않은 내용에 대해 다룬다. 이러한 데이터는 데이터셋의 크기가 매우커서 전체를 확인하지 못할 때 종종 마주칠 수 있다. 데이터 입력값의 오류인데, 이러한 오류를 인지하지 못하면 분석은 원하는대로 가지 못하고 우왕좌왕 할 때가 많다.
특히, 엑셀 데이터를 수집해서 하는 분석은 이러한 데이터 Mix
가 종종 일어나니, 꼭 주의해야 하는 경우다.
print(xMix)
## [1] "1" "TRUE" "Hello R!"
각각의 값이 쌍따옴표 "값"
이 붙어있는 것을 봐서는 문자열로 변했다. 이상하지 않은가? 원래 의도한 입력값은 숫자형이었기 때문이다.
그런데, 만약 이 때 1
에 1을 더해서 2로 바꾸고 싶다면 어떻게 해야할까?
인덱싱은 일종의 각 요소에 대해 접근하는 방법이다. 어려운 건 아니다. 우선 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
로 바뀐 것을 확인할 수 있다.
Chapman, C., & Feit, E. M. D. (2015). R for marketing research and analytics. Cham: Springer.