R 기초강의(3) - R Data Type
R 강좌는 여러 절로 구성되어 있습니다.
- R 기초강의(1) - R 개요
- R 기초강의(2) - R Operator
- R 기초강의(3) - R Data Type
- R 기초강의(4) - R 패키지와 함수
- R 기초강의(5) - R 자료구조(vector)
- R 기초강의(6) - R 자료구조(matrix)
- R 기초강의(7) - R 자료구조(factor, list)
- R 기초강의(8) - R 자료구조(data frame)
- R 기초강의(9) - R 문자열 처리
- R 기초강의(10) - R 데이터 입출력
- R 기초강의(11) - R 제어문 및 함수
- R 기초강의(12) - R 기초 Exercise
- R 기초강의(13) - R Crawling
- R 기초강의(14) - R 데이터 조작
- R 기초강의(15) - R 데이터 조작 실습
- R 기초강의(16) - R 데이터 정제
- R 기초강의(17) - R 기초 통계 함수
- R 기초강의(18) - R Graph
- R 기초강의(19) - R KoNLP
- R 기초강의(20) - R 연습문제
- R 기초강의(21) - R ggmap
- R 기초강의(22) - R 정형데이터 처리
R Data Type
R에는 크게 2가지 형태의 Data Type이 있습니다. 하나는 기본 데이터 타입이고 다른 하나는 특수 데이터 타입입니다.
기본 데이터 타입
수치형(Numeric)
: 숫자로 되어 있으며 정수형과 실수형을 의미합니다.L
기호를 이용하면 정수형, 그렇지 않으면 실수형으로 간주합니다.문자형(character)
: 하나의 문자 혹은 문자열로 되어 있으며""
혹은''
을 사용합니다.논리형(logical)
: 참과 거짓의 논리값으로 TRUE(T) 혹은 FALSE(F)로 표현됩니다.복소수형(complex)
: 실수와 허수로 이루어진 복소수형태로 표현됩니다.
특수 데이터 타입
NULL
: NULL은 그 자체가 객체이며 존재하지 않는 객체를 지정할 때 사용됩니다.NA
: Not Available의 약자로 결측치(missing value)를 의미합니다.NaN
: Not available Number의 약자로 수학적으로 연산이 불가능한 수를 의미합니다. 예) sqrt(-3)Inf
: Infinite의 약자로 양의 무한대를 의미합니다.-Inf
: 음의 무한대를 의미합니다.
Data Type을 알려주는 함수는 mode()
함수와 is로 시작하는 함수가 제공됩니다. mode()함수는 문자열 형태로
최종 결과를 알려주고 is계열의 함수는 TRUE 혹은 FALSE의 논리값으로 리턴됩니다.
실습
- Data Type을 알려주는
mode()
함수와 is계열의 함수를 사용해보자.
var1 = 100
var2 = 100L
var3 = "HEllo"
var4 = TRUE
var5 = 4 - 3i
var6 = NULL
var7 = sqrt(-3) # warning : NaNs produced
mode(var1) # "numeric"
mode(var2) # "numeric"
mode(var3) # "character"
mode(var4) # "logical"
mode(var5) # "complex"
mode(var6) # "NULL"
mode(var7) # "numeric"
is.numeric(var1) # TRUE
is.numeric(var2) # TRUE
is.double(var1) # TRUE
is.integer(var1) # FALSE
is.integer(var2) # TRUE
is.character(var3) # TRUE
is.logical(var1) # FALSE
is.null(var6) # TRUE
is.na(var7) # TRUE
제공되는 is계열의 Data Type 확인 함수는 다음과 같습니다.
R은 Data Type의 우선순위
가 존재합니다. 아직 설명하지는 않았지만 R에는 vector
라는 자료구조가
존재합니다. vector는 여러개의 데이터를 가질 수 있는 자료구조인데 하나의 Data Type만을 가질 수
있습니다. 따라서 vector를 만들 때 여러 Data Type을 이용해도 최종적으로는 하나의 Data Type으로
통일되며 우선순위에 의해서 최종 Data Type이 결정됩니다.
Data Type의 우선순위
- 문자형(character) > 복소수형(complex) > 수치형(numeric) > 논리형(logical)
실습
- vector를 이용하여 Data Type의 우선순위를 확인해보자
# Data Type의 우선순위
var1 <- c(100,TRUE,3.1415) # numeric
var1
var2 <- c(100,TRUE,3.1415,"Hello") # character
var2
var3 <- c(100,FALSE,3-4i) # complex
var3
var4 <- c(100,FALSE,3-4i,"안녕!!") # character
var4
R은 하나의 Data Type을 다른 Data Type으로 변경시키는 Type Casting
작업을 위해
아래와 같은 함수를 제공합니다. (아래의 함수 이외의 함수도 제공됩니다. 추가적인 함수는
나올때마다 학습하도록 합니다.)
실습
- 형변환 함수를 이용하여 하나의 Data Type을 다른 Data Type으로 변환해 보자.
# Data Type 변환
var1 <- 3.1415
var2 <- 0
var3 <- "3.141592"
var4 <- "Hello"
as.character(var1) # "3.1415"
as.double(var1) # 3.1415
as.integer(var1) # 3
as.numeric(var1) # 3.1415
as.logical(var1) # TRUE
as.logical(var2) # FALSE
as.double(var3) # 3.141592
as.integer(var3) # 3
as.double(var4) # NA
End.
이 포스트의 내용은 아래의 책과 사이트를 참조했습니다. 조금 더 자세한 사항을 알고 싶으시면 책을 참조하거나 해당 사이트를 방문하세요!!