본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 13. 자료형 분류하기, 확인하기 (mode, typeof)

by 만다린망고 2020. 3. 15.
반응형
도구 R로 푸는 통계

13. 자료형 분류하기, 확인하기(mode,typeof)



우리가 지금까지 배운 자료형의 종류는 아래와 같습니다. 


- 숫자 (numeric)

- 복소수 (complex)

- 문자열 (string)

- 논리값 (logical)

- NULL (NULL)

- 리스트 (list)


이 외에도 더 있는데, 나머지는 나중에 다루도록 할게요. 


정의한 변수가 어떤 자료형인지 확인하는 함수는 두 가지가 있습니다. 


mode( )

typeof( )


둘의 차이는 아래와 같습니다. 


 typeof()

mode()

 integer(정수형)

double(실수형)

numeric(숫자형)

 special

builtin

function 

simbol 

name 

 language

(

call 


2,3,4번은 처음보는 것들이죠? 나중에 다루기로 하구요. 1번을 보면 typeof에서는 정수와 실수를 구분하고, mode에서는 구분하지 않습니다.


기능이 비슷한데요. 뭐하러 mode와 typeof라는 두가지 함수을 만들어 놓았을까요?


처음부터 의도한 것은 아니구요. 원래 R은 S언어로 만들어져 있었는데, 1988년에 C언어로 재작성되는 과정을 겪습니다. 이런 과정에서 S언어식 분류법과 C언어식 분류법이 둘다 생기게 된 겁니다. 


한번 예를들어 봅시다.


> a=c(1,2,3)


> mode(a)

[1] "numeric"


> typeof(a)

[1] "double"


1,2,3은 정수인데 double로 인식하죠?  R에서는 수를 인식하는 디폴트가 실수(double)입니다. 정수로 입력하려면 뒤에 L을 붙여줘야 합니다.


> a=c(1L,3L)


> typeof(a)

[1] "integer"


다른 예도 들어봅시다. 


> ex1=c("a","b")

> ex2=c(TRUE,FALSE)

> ex3=NULL

> ex4=list(name="PAUL",age=35)

> ex5=c(2+3i,2-5i)


> mode(ex1)

[1] "character"

> typeof(ex1)

[1] "character"


> mode(ex2)

[1] "logical"

> typeof(ex2)

[1] "logical"


> mode(ex3)

[1] "NULL"

> typeof(ex3)

[1] "NULL"


> mode(ex4)

[1] "list"

> typeof(ex4)

[1] "list"


> mode(ex5)

[1] "complex"

> typeof(ex5)

[1] "complex"


mode와 typeof에서 동일한 결과가 나옵니다. 



영상이 더 편하신 분


반응형

댓글