5.2 벡터의 유형
벡터는 그 벡터를 구성하는 요소의 데이터 유형에 따라 벡터의 유형이 정해지게 됩니다.
- 숫자형 : 숫자형에는
1L
,2L
,3L
등을 요소로 하는 벡터로 정수형(integer)이 있으며,1.5
,2.5
,3.0
등을 요소로 하는 벡터로 실수형(double)이 있습니다. 그런데 이들은 집합적으로는 숫자형(numeric) 벡터라고 합니다. - 문자형 :
"대한민국"
,"홍길동"
,"5"
,"2020-01-01"
등과 같이 따옴표 안의 문자들을 요소로 하는 벡터를 문자형(character)이라고 합니다. 특히,"5"
의 경우는 보기에는 숫자5
와 같지만,“5”
안에 있으면 단순한 기호로서의5
가 되어 문자로 처리가 됩니다.- 또한
"2020-01-01"
의 경우에도 날짜로 보이지만 이는 날짜가 아니고 단순한 문자열입니다. 이를 날짜로 처리하기 위해서는as.Date()
함수를 이용하여 벡터의 유형을 날짜형으로 강제 변환을 해야 합니다.
- 논리형 :
TRUE
,FALSE
등의 논리값을 요소로 하는 벡터는 논리형(logical)입니다. - 날짜형 :
"2020-01-01"
,"Jan-03-2021"
등을 요소로 하는 벡터를 날짜형(Date) 벡터라고 합니다. 이들 날짜형 벡터는 먼저 문자열 벡터로 생성한 다음,as.Date()
함수로 변경을 해야 날짜형 벡터로 사용할 수 있습니다.
여기서 특히, integer
, double
, numeric
, character
, logical
, 그리고 Date
등은 여러분이 꼭 기억해 두기 바랍니다. 이는 벡터의 유형을 확인하고 싶을 때, typeof()
함수를 사용하면 벡터의 유형을 확인하고 출력하는 결과입니다. is.*()
함수를 이용하는 경우에는 *
에 해당하는 벡터 유형인지 확인하는 것입니다. 또한, 벡터 유형의 강제변환에 있어서도 as.*()
함수의 *
에 사용하여 원하는 벡터형으로 강제변환하게 됩니다.
5.2.1 벡터 유형의 종류
5.2.1.1 숫자형 벡터
숫자형(numeric)의 요소들로 구성된 벡터의 경우
<- c(1, 2, 3) # 숫자 벡터
x1 x1
## [1] 1 2 3
<- c(1L, 2L, 3L) # 정수형
x2 x2
## [1] 1 2 3
<- c(2+1i, 3+2i, 4+3i) # 복소수형 : (참고만 하세요)
x3 x3
## [1] 2+1i 3+2i 4+3i
5.2.1.2 문자형 벡터
문자형(character)의 요소들로 구성된 벡터의 경우, 문자형 요소들을 모두 ""
또는 ‘’
로 묶어 줍니다.
<- c("A", "B", "c") # 문자 요소는 `""`로 묶는다.
y y
## [1] "A" "B" "c"
5.2.1.3 논리형 벡터
논리형(logical)의 요소들로 구성된 벡터의 경우, 논리형의 요소 값은 TRUE
, FALSE
또는 T
, F
로 한다.
논리형 벡터는 0
, 1
이라는 정수값으로 저장이 됩니다.
<- c(TRUE, FALSE, T, F)
z z
## [1] TRUE FALSE TRUE FALSE
5.2.1.4 날짜형 벡터
날짜형(Date)은 별도의 함수를 사용해야 합니다.
<- Sys.Date() # Sys.Date() 함수는 오늘 날짜를 반환하는 함수입니다.
today # today는 날짜형 벡터가 됩니다. today
## [1] "2021-02-08"
<- c("2020-01-01", "2021-01-01"); date # date는 문자형 벡터입니다. date
## [1] "2020-01-01" "2021-01-01"
<- as.Date(date); date1 # as.Date() 함수를 이용하여 날짜형 벡터로 강제변환해 줘야 합니다. date1
## [1] "2020-01-01" "2021-01-01"
날짜형 벡터 date1
의 경우는 보기에는 date
와 마찬가지로 문자형 벡터로 보이지만, 다음에서 배울 class()
함수를 이용하여 벡터의 클래스를 확인해 보면 서로 다름을 알 수 있습니다.
class(date) # "character"로 출력됩니다.
## [1] "character"
class(date1) # "Date"로 출력됩니다.
## [1] "Date"