우리는 데이터를 입력하는 과정에서 해당 값이 숫자인지 문자인지 구분하지만, 컴퓨터는 입력받은 데이터가 어떤 유형(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에서 TRUE
는 1
로, FALSE
는 0
으로 인식되므로 숫자형 데이터로 변환이 가능합니다. TRUE
는 T
로, FALSE
는 F
로도 생성할 수 있습니다. 단, 주의할 점은 대소문자를 구분하니 유의해야합니다.
(2) 예시
TRUE
와 True
의 차이를 확인하기 위해 이를 생성하면 다음과 같습니다.
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) 예시
f
와 m
의 값을 가지는 객체 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
로 레이블 변환됐음을 확인할 수 있습니다. 허나 실제로 컴퓨터가 인식하는 값은 f
는 1
, m
은 2
임에 유의해야 합니다.
9.5. 날짜(Date)
날짜형은 데이터를 시간 형식인 "연-월-일 시-분-초" 구조를 YYYY-MM-DD HH:MM:SS
으로 표시해주는 데이터입니다. 날짜형은 시계열 분석에서 주로 사용되며, 날짜의 특징을 추출할 때 주로 사용합니다. 날짜형 데이터에 대한 논의는 <TEMP. 시계열 데이터 전처리하기>을 참조하세요.
'Ⅰ. R 기초' 카테고리의 다른 글
11. 데이터 구조 별 인덱싱하기 (0) | 2020.09.29 |
---|---|
10. 데이터 구조 파악하기 (0) | 2020.09.28 |
8. 패키지 설치 및 관리하기 (0) | 2020.09.24 |
7. 함수 구조와 파라미터 이해하기 (0) | 2020.09.23 |