우리는 데이터를 입력하는 과정에서 해당 값이 숫자인지 문자인지 구분하지만, 컴퓨터는 입력받은 데이터가 어떤 유형(Type)인지 구분하지 못하는 문제를 가지고 있습니다. 그러므로 데이터를 입력할 때는 그 값과 데이터의 유형을 정의하여 입력합니다. R에는 다양한 데이터 유형이 존재하지만 기본적인 데이터 유형은 총 5가지입니다.

 

9.1. 문자(Character; string)

더보기

(1) 문자형 데이터의 정의

문자형 데이터는 가장 포괄적인 데이터 유형으로서, 모든 데이터 유형은 문자형으로 변환 가능합니다. 문자형 데이터를 정의할 때는 "" 혹은 ''를 통해 정의합니다.

 

(2) 예시

문자형 데이터는 다음과 같이 생성할 수 있습니다. 

chr_01 <- "Data Analytics With R"

환경창에서 객체 유형을 확인할 때, 문자 유형의 데이터는 값에 ""이 붙어있음을 확인할 수 있습니다.

 

9.2. 숫자(Number)

더보기

(1) 숫자형 데이터의 정의

R에서 주로 사용하는 데이터 유형으로써, 일반적으로는 수는 모두 실수로 할당됩니다. 하지만 숫자 유형은 메모리의 저장 효율을 위해 다음과 같이 구분됩니다.

  ①Numeric(float) : 소수점을 포함하는 실수

  ②Integer : 정수, 숫자 끝에 L을 붙여 정수로 인식함 

 

(2) 예시

정수형과 실수형 데이터를 구분하기 위해 숫자형인 객체들을 정의해보겠습니다.

int_01 <- 3L
num_01 <- 3

실수 유형 데이터는 숫자 그대로 표시되나, 정수 유형의 데이터는 값의 끝에 L이 붙어있음을 확인할 수 있습니다.

 

PLUS) 복소수(Complex Number)

실수와 허수의 합으로 나타내는 복소수도 R의 데이터 유형으로서 존재합니다. 하지만 데이터 분석 업무에서 주로 사용되는 유형은 아니므로, 해당 포스팅에서는 자세한 언급은 생략하겠습니다.

 

9.3. 논리(Logical; Bloolean)

더보기

(1) 논리형 데이터의 정의

논리형 데이터는 참인 TRUE, 거짓인 FALSE라는 값으로 정의되는 데이터입니다. R에서 TRUE1로, FALSE0으로 인식되므로 숫자형 데이터로 변환이 가능합니다. TRUET로, FALSEF로도 생성할 수 있습니다. 단, 주의할 점은 대소문자를 구분하니 유의해야합니다. 

 

(2) 예시

TRUETrue의 차이를 확인하기 위해 이를 생성하면 다음과 같습니다.

logical_01 <- TRUE
logical_02 <- T
logical_03 <- True

해당 코드를 실행시키면 logical_03 객체는 저장되지 않았는데, 이는 TRUE가 아니라 True라는 객체를 할당한 것이기 때문입니다. 또한 나머지 객체들은 문자형 데이터와는 달리 ""로 수식되지 않았음을 확인할 수 있습니다.

 

 PLUS) 특수값

주로 입력 과정에서 논리적으로 맞지 않은 <처리>를 명령할 때 특별한 값을 반환하기도 합니다. 이를 특수값이라고 정의하며, 그 종류는 다음과 같습니다.

 ①NA(Not Available) : 결측값, 값이 입력 과정에서 누락됐음을 의미

 ②NAN(Not A Number) : 0/0처럼 수학적으로 정의되지 않은 오류

 ③NULL : 특정 객체에 값이 비어있음을 의미

 ④Inf(Infinite) : 무한대의 상태, 이론적으로 연산이 가능하더라도 R에서 다루기 너무 크거나 작을 경우 반환

 

9.4. 팩터(Factor; Categorical)

더보기

(1) 범주(팩터)화의 정의

범주화란 값을 분류하고, 컴퓨터가 이를 구분하기 위해 변환하는 것을 의미합니다. 주로 문자형 데이터를 숫자형 데이터로 변환할 때 사용하거나, 숫자형 데이터를 범주화할 때 사용합니다. 범주형 데이터는 크게 순서형과 명목형으로 구성되어 있는데 순서형은 High⋅Low와 같이 순서에 우위가 있을 때, 명목형은 Right⋅Left와 같이 순서에는 우위가 없으나 분류를 위해 사용합니다.

 

(2) 팩터형 데이터 생성함수, factor() 

팩터형 데이터를 생성하기 위해 사용되는 factor() 함수의 구조와 파라미터는 다음과 같습니다.

factor(x, levels, labels, ordered=is.ordered(x), ∙∙∙)
 
파라미터 설명
  x   팩터형으로 변환하고자 하는 문자형 데이터
  levels   x에서 구분하고자 하는 팩터 목록을 지정
  labels   레벨 별로 표시할 값(레이블) 지정
  ordered   TRUE면 순서형, FALSE면 명목형

 

(3) 예시

fm의 값을 가지는 객체 2개를 선언하고, 이를 female, male로 범주화 해보겠습니다. 

chr_02 <- "f"
chr_03 <- "m"
factor_01 <- factor(
  x=chr_02,
  levels=c("f", "m"),
  labels=c("female", "male"),
  ordered=FALSE 
)
factor_02 <- factor(
  x=chr_03,
  levels=c("f", "m"),
  labels=c("female", "male"),
  ordered=FALSE 
)

환경창에서 결과를 확인하면 factor_01 객체는 f라는 값에서 female로 레이블 변환되었고, factor_02 객체는 m이라는 값에서 male로 레이블 변환됐음을 확인할 수 있습니다. 허나 실제로 컴퓨터가 인식하는 값은 f1, m2임에 유의해야 합니다.

 

9.5. 날짜(Date)

더보기

날짜형은 데이터를 시간 형식인 "연-월-일 시-분-초" 구조를 YYYY-MM-DD HH:MM:SS으로 표시해주는 데이터입니다. 날짜형은 시계열 분석에서 주로 사용되며, 날짜의 특징을 추출할 때 주로 사용합니다. 날짜형 데이터에 대한 논의는 <TEMP. 시계열 데이터 전처리하기>을 참조하세요.