4. 자료형(Data Type)
in Study on R Programming
Overview
R에서 자료형의 사용법에 대해 알아본다.
자료형(Data Type)
R은 변수 선언 시 별도의 자료형(Type)을 선언하지 않는다.
즉, 자료의 유형에 의해 변수의 타입이 결정된다.
R에서 기본적으로 제공하는 자료형은 다음과 같다.
유형(Type) | 값(Value) | 예(Sample) |
---|---|---|
숫자형(Numeric) | 정수, 실수 | 100, 12.345 |
문자형(Character) | 문자, 문자열 | ‘김’, ‘홍길동’ |
논리형(Logical) | true, false | TRUE, T, FALSE, F |
결측 데이터 | 결측치, 비슷자 | NA, NaN(Not A Number) |
NA, NULL
NA의 뜻은 Not Available이다.
값이 있어도 정해진 범위 안에 존재하는 값이 아니여서 사용할 수 없는 경우를 의미한다.
임의의 의미 있는 값과 연산을 하게 되면 그 최종 결과는 NA이다.
NA 값인지를 판별하려면 is.na(var_name)
함수를 사용하면 된다.
NA는 연산 대상에 포함되기 때문에 NA + 100 = NA이다.
NA 처리시 na.rm = T
옵션을 사용하면 NA를 연산 대상에서 제외할 수 있다.
NULL은 값이 정해지지 않아 얼마인지 모른다는 의미이다.
NA와 비교하면 NULL은 연산 대상에서 제외되어 NULL + 100 = 100이다.
자료형 확인 함수
변수에 저장되어 있는 자료의 유형을 확인 하는 함수들은 다음과 같다.
결과값에 따라 TRUE나 FALSE를 리턴한다.
함수 | 기능 | 함수 | 기능 |
---|---|---|---|
is.numeric(x) | 수치형 여부 | is.integer(x) | 정수형 여부 |
is.logical(x) | 논리형 여부 | is.double(x) | 실수형 여부 |
is.character(x) | 문자형 여부 | is.complex(x) | 복소수형 여부 |
is.data.frame(x) | 데이터프레임 여부 | is.factor(x) | factor형 여부 |
is.na(x) | NA 여부 | is.nan(x) | NaN 여부 |
자료형 변환 함수
변수에 저장되어 있는 자료의 유형을 다른 유형으로 변경할 수 있다.
함수 | 기능 | 함수 | 기능 |
---|---|---|---|
as.numeric(x) | 수치형으로 변환 | as.integer(x) | 정수형으로 변환 |
as.array(x) | 다차원 배열로 변환 | as.Date(x) | 날짜형으로 변환 |
as.logical(x) | 논리형으로 변환 | as.double(x) | 실수형으로 변환 |
as.character(x) | 문자형으로 변환 | as.complex(x) | 복소수형으로 변환 |
as.data.frame(x) | 데이터프레임으로 변환 | as.factor(x) | factor형으로 변환 |
as.list(x) | 리스트형으로 변환 | as.vector(x) | 벡터형으로 변환 |
자료형과 자료 구조 조회
자료형은 변수에 저장된 자료의 성격(숫자, 문자, 논리 등)을 의미한다.
자료 구조는 변수에 저장된 자료의 메모리 구조(배열, 리스트, 테이블 등)를 의미한다.
mode와 class
mode()
: 변수에 저장된 자료의 성격(numeric, character, boolean 등)class()
: 변수에 저장된 자료의 메모리 구조(array, list, table 등)
Factor 함수
Factor는 범주형 데이터 자료를 표현하기 위한 데이터 타입이다.
범주형 데이터는 데이터가 사전에 정해져 있는 특정한 유형으로만 분류 되어 있는 경우를 말한다.
Factor의 사용법
항목 | 설명 |
---|---|
사용형식 | factor(x, levels, ordered) |
x | factor로 표현하고자 하는 값(주로 문자열 벡터 |
levels | 값의 level(가질 수 있는 카테고리의 unique한 값의 list |
ordered | TRUE 면 정의된 순서대로 보여줌(순서형)FALSE 면 명목형 데이터(기본값, 알파벳/가나다 순)기본 값을 매개 변수 x 의 내용을 정렬한 결과를 사용 |
labels | levels 에 해당하는 새로운 라벨을 작성 |
날짜와 시간
R에서 날짜형의 칼럼은 요인형 또는 문자형으로 인식되기 때문에 정확한 날짜형으로 변환할 필요가 있다.
데이터 분석시 특정 시간을 지정하거나, 특정 기간을 지정해서 분석을 수행하는 경우가 많다.
시스템의 locale 정보 확인
현재 시스템에서 설정된 locale 정보를 확인하여 국가정보출처, 언어유형, 통화단위, 숫자, 날짜/시간 정보를 확인 한다.
로케일 정보는 sessionInfo()
함수에 의해서도 확인할 수 있다.
> Sys.getlocale(category = "LC_ALL") # 현재 로케일 정보 전체 보기
[1] "ko_KR.UTF-8/ko_KR.UTF-8/ko_KR.UTF-8/C/ko_KR.UTF-8/ko_KR.UTF-8"
> Sys.getlocale(category = "LC_COLLATE") # 지역정보 출처만 보기
[1] "ko_KR.UTF-8"
현재 날짜와 시간 확인
현재 시스템의 날짜와 시간 정보를 제공한다.
KST 는 대한민국 표준시간대를 의미한다.
> Sys.Date() # yyyy-mm-dd
[1] "2019-10-07"
> Sys.time() # 로케일 정보에 의한 현재 날짜와 시간
[1] "2019-10-07 11:38:45 KST"
날짜와 시간에 대한 제어 문자
문자형 날짜를 대상으로 strptime()
함수를 사용하면 날짜 형식으로 변환이 가능하다.
일반적으로 날짜와 시간과 관련된 제어 문자에는 다음과 같은 항목들이 존재한다.
날짜 | 제어문자 | 날짜 | 제어문자 |
---|---|---|---|
년도 4자리 | %Y | 24시간 | %H |
년도 2자리 | %y | 12시간 | %I |
월 | %m | 분 | %M |
일 | %d | 초 | %S |
영어 약자 | %b | 월 전체 이름 | %B |