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)의 요소들로 구성된 벡터의 경우
x1 <- c(1, 2, 3) # 숫자 벡터
x1## [1] 1 2 3
x2 <- c(1L, 2L, 3L) # 정수형
x2## [1] 1 2 3
x3 <- c(2+1i, 3+2i, 4+3i) # 복소수형 : (참고만 하세요)
x3## [1] 2+1i 3+2i 4+3i
5.2.1.2 문자형 벡터
문자형(character)의 요소들로 구성된 벡터의 경우, 문자형 요소들을 모두 "" 또는 ‘’로 묶어 줍니다.
y <- c("A", "B", "c") # 문자 요소는 `""`로 묶는다.
y## [1] "A" "B" "c"
5.2.1.3 논리형 벡터
논리형(logical)의 요소들로 구성된 벡터의 경우, 논리형의 요소 값은 TRUE, FALSE 또는 T, F로 한다.
논리형 벡터는 0, 1이라는 정수값으로 저장이 됩니다.
z <- c(TRUE, FALSE, T, F)
z## [1] TRUE FALSE TRUE FALSE
5.2.1.4 날짜형 벡터
날짜형(Date)은 별도의 함수를 사용해야 합니다.
today <- Sys.Date() # Sys.Date() 함수는 오늘 날짜를 반환하는 함수입니다.
today # today는 날짜형 벡터가 됩니다.## [1] "2021-02-08"
date <- c("2020-01-01", "2021-01-01"); date # date는 문자형 벡터입니다.## [1] "2020-01-01" "2021-01-01"
date1 <- as.Date(date); date1 # as.Date() 함수를 이용하여 날짜형 벡터로 강제변환해 줘야 합니다.## [1] "2020-01-01" "2021-01-01"
날짜형 벡터 date1의 경우는 보기에는 date와 마찬가지로 문자형 벡터로 보이지만, 다음에서 배울 class() 함수를 이용하여 벡터의 클래스를 확인해 보면 서로 다름을 알 수 있습니다.
class(date) # "character"로 출력됩니다.## [1] "character"
class(date1) # "Date"로 출력됩니다.## [1] "Date"