003. 데이터 타입 (스칼라)
1. 스칼라(Scalar)
ㆍ스칼라는 '가', '나', '다'와 같은 일차원의 값을 의미한다. R의 기본 데이터 타입은 벡터(vector)인데, 스칼라는 길이가 1인 벡터와 같다.
ㆍ스칼라에는 숫자, 문자, 논리, 팩터형 데이터가 저장될 수 있다.
가. 숫자형(numeric)
ㆍ정수, 실수, 복소수 등의 숫자 데이터는 숫자형 데이터에 해당한다.
ㆍ수학적 연산 및 통계적 계산이 가능하다.
ㆍ숫자형 벡터에 문자가 하나라도 포함되면 벡터 전체가 문자형으로 변환된다.
ㆍ아래의 R 코드와 같이 새로운 변수에 대입 연산자(<-)를 이용해 숫자 데이터를 지정할 수 있다.
나. 문자형(character)
ㆍ문자 혹은 단어 등으로 구성된 문자들의 집합은 문자형 데이터에 해당한다.
ㆍR에서 문자는 "" 또는 ''내에 표현되며, 문자형 데이터끼리의 사칙연산은 불가능하다.
ㆍ숫자를 '' 또는 ""내에 표현하여 변수에 저장할 경우, 문자형으로 저장된다.
다. 논리형(logical)
ㆍ논리형 데이터 값은 TRUE와 FALSE이며, TRUE(T와 동일)는 참, FALSE(F와 동일)는 거짓을 의미한다.
ㆍR에서 TRUE는 1로 인식되고, FALSE는 0으로 인식되므로 논리형 데이터는 그 자체로 산술연산이 가능하며, 수치형 데이터로 변환할 수도 있다.
ㆍTrue는 TRUE와 같지 않으며, false 또한 FALSE와 같지 않다. (R은 대소문자를 구분한다.)
라. 팩터형(factor)
ㆍ범주형 자료를 표현하기 위한 데이터 타입이며, factor 함수를 이용하여 생성한다.
ㆍ예를 들어, 의류의 사이즈를 대, 중, 소의 세 가지 분류의 데이터로 저장하고 싶다면 R에서는 대, 중, 소라는 세 가지의 값만 가지는 범주형 변수를 생성할 수 있다.
ㆍ대, 중, 소와 같이 범주형 변수 즉, 팩터가 저장할 수 있는 값의 목록을 레벨(level, 수준)이라고 한다.
ㆍ범주형 데이터는 순서형과 명목형으로 나누어진다. 순서형 데이터는 [상, 중, 하]와 같이 순서를 정할 수 있는 값이며, 명목형 데이터는 [왼쪽, 오른쪽]과 같이 값에 대한 크기를 비교할 수 없는 데이터에 해당한다.
factor(data, levels, labels, ordered)
인자 | 설명 |
data | 범주형으로 표현하고자 하는 데이터 |
levels | 구분하고자 하는 범주(레벨) 목록을 지정 |
labels | 범주별 표시 값 지정 |
ordered | TRUE이면 순서형, FALSE이면 명목형 |
Q. 남자를 의미하는 m(male) 분류값 2개와 여자를 의미하는 f(female)분류값 3개로 이루어진 팩터를 생성해보자.
마. NA / NULL / NAN / INF
ㆍNA는 Not Available의 약자로 데이터 값이 없음을 의미하는 결측치이다.
ㆍNULL은 변수의 값이 초기화되지 않았을 때 사용하며, 정의되지 않은 값을 나타낸다.
ㆍNAN는 Not Available Number의 약자로 수학적 계산이 불가능한 값을 의미한다.
ㆍINF는 Infinite의 약자로 무한대를 의미한다.
ㆍNA는 상수, NULL은 객체에 해당한다.
바. 데이터 타입 확인
함수 | 의미 | 결과 |
mode(객체명) | 객체의 데이터 타입 확인 | 객체의 데이터 타입 |
is.numeric(객체명) | 객체가 숫자형 벡터인지 판단 | TRUE/FA:SE |
is.integer(객체명) | 객체가 정수형 벡터인지 판단 | |
is.double(객체명) | 객체가 실수형 벡터인지 판단 | |
is.character(객체명) | 객체가 문자형 벡터인지 판단 | |
is.factor(객체명) | 객체가 팩터인지 판단 | |
is.logical(객체명 | 객체가 논리형인지 판단 | |
is.null(객체명) | 객체가 NULL인지 판단 | |
is.na(객체명) | 객체가 NA인지 판단 |
사. 데이터 타입 변환
함수 | 의미 |
as.numeric(객체명) | 객체를 숫자형으로 변환 |
as.integer(객체명) | 객체를 숫자형(정수)로 변환 |
as.double(객체명) | 객체를 숫자형(실수)로 변환 |
as.character(객체명) | 객체를 문자형으로 변환 |
as.factor(객체명) | 객체를 팩터로 변환 |