R의 데이터 유형의 우선순위와 강제변환

빅데이터/R 2018. 12. 9. 01:49

R의 데이터 유형의 우선순위와 강제변환



1. 데이터 유형의 우선순위

1) 대표적인 데이터 유형(문자형 > 복소수형 > 수치형 > 논리형)에는 우선순위가 존재합니다.

데이터 이름을 주고 실행하면 데이터가 가지는 값을 보여줍니다. x1에 네 개의 값을 가지는 벡터, 네가지 유형(수치형, 문자형, 논리형, 복소수형)으로 입력했습니다. 하지만 x1이라는 벡터가 가지는 최종적인 유형은 한 가지, 우선순위 때문에 문자형이 됩니다. 

> x1 = c(2"Love", TRUE, 2+3i)
> x1
[1"2"    "Love" "TRUE" "2+3i"
> mode(x1)
[1"character"
cs


콘솔 결과값의 앞 1은 인덱스 숫자를 의미합니다. 그러므로 맨 앞의 "2"를 가리키는 것입니다.


2) 데이터 유형에 따른 강제 변환

데이터 유형을 강제적으로 변경하는 함수들입니다.

as.numeric(데이터)     # 데이터를 수치형으로 변환
as.integer(데이터)     # 데이터를 정수형으로 변환
as.double(데이터)      # 데이터를 실수형으로 변환
as.character(데이터)   # 데이터를 문자형으로 변환
as.logical데이터)      # 데이터를 논리형으로 변환
as.complex(데이터)     # 데이터를 복소수형으로 변환
cs


3) 데이터 유형을 강제적으로 변경하는 방법

데이터 유형 중 우선순위가 낮은 형태에서 우선순위가 높은 형태로는 강제적으로 유형 변환이 가능합니다. 우선순위가 높은 형태에서 우선순위가 낮은 형태로의 변환은 일부만 가능하기 때문에 경우에 따라서 강제적으로 유형이 변경되지 않을 수 있습니다.

> x1 = 10
> as.numeric(x1)
[110
> as.integer(x1)    # 정수형으로 변환
[110
> as.double(x1)     # 실수형으로 변환
[110
> as.character(x1)  # 문자형으로 변환
[1"10"
> as.logical(x1)    # 논리형으로 변환
[1] TRUE
> as.complex(x1)    # 복소수형으로 변환
[110+0i
cs