R 자료형 사이의 변환방법
R에서 어떤 자료형을 다른 자료형으로 바꾸는데 사용되는 함수는 as. 함수입니다. 함수의 종류는 자료형의 종류만큼 있습니다. as. 뒤에 자료형을 붙인 형태입니다. 종류는 아래와 같습니다.
as.numeric() : 숫자형 벡터로 변환
as.integer() : 정수형 벡터로 변환
as.complex() : 복소수형 벡터로 변환
as.character() : 문자형 벡터로 변환
as.logical() : 논리형 벡터로 변환
as.null : null형 벡터로 변환
변환이 항상 가능한 것은 아닙니다. 자료형 사이에는 우선순위가 있습니다. 문자형이 가장 우선이고 숫자형, 논리형, NULL형 순으로 이어집니다.
문자형 > 숫자형 > 논리형 > NULL
낮은 우선순위를 높은 우선순위로 바꾸는 것은 항상 가능합니다. 반대는 항상 가능하지는 않습니다. 모든 케이스를 살펴봅시다.
as.integer()와 as.complex()은 as.numeric() 과 동일하게 작동하므로 제외했습니다.
1) NULL형을 다른 자료형으로 변환
NULL형은 모든 자료형으로 변환이 가능합니다. 괄호 안에 있는 0의 의미는 길이가 0이다, 원소가 없다는 의미입니다. 예를들어 logical(0)은 자료형이 논리형이긴 한데 들어 있는 원소가 없다는 뜻입니다.
> n=NULL
> log=as.logical(n)
> log
logical(0)
> num=as.numeric(n)
> num
numeric(0)
> char=as.character(n)
> char
character(0)
괄호 안에 0이 있는 것은 해당 자료형이긴 한데 비어있다는 뜻입니다.
2) 논리형을 다른 자료형으로 변환
논리형은 모든 자료형으로 변환이 가능합니다.
> log=TRUE
> n=as.null(log)
> n
NULL
> num=as.numeric(log)
> num
[1] 1
> char=as.character(log)
> char
[1] "TRUE"
3) 숫자형을 다른 자료형으로 변환
숫자형은 모든 자료형으로 변환이 가능합니다.
> num=5
> n=as.null(num)
> n
NULL
> log=as.logical(num)
> log
[1] TRUE
> char=as.character(num)
> char
[1] "5"
4) 문자형을 다른 자료형으로 변환
문자형을 논리형이나 숫자형으로 바꿀 경우 NA가 반환됩니다.
> char="a"
> n=as.null(char)
> n
NULL
> log=as.logical(char)
> log
[1] NA
> num=as.numeric(char)
Warning message:
NAs introduced by coercion
> num
[1] NA
'4. 자료형 > 자료형 사이의 변환' 카테고리의 다른 글
R에서 리스트를 벡터로 바꾸는 방법, unlist() (0) | 2019.12.11 |
---|
댓글