자격증/ADsP
[개미의 걸음 ADsP 3과목] R기초③ R 데이터 유형 및 변환 with (mode, is, as 함수)
IT개미 데이터
2020. 7. 21. 17:17
728x90
R의 데이터 유형
R에는 데이터의 기본적인 속성으로 데이터가 어떤값(숫자*문자)으로 이루어져 있는지 나타내는 데이터 유형이 존재한다.
-
데이터 유형은 기본적인 형태와 특수한 형태로 구성
기본적인 데이터 유형 4가지
문자형[Character] | 하나의 문자 또는 문자열로 되어 있으며 ' ' 또는 " "로 묶여 있다. |
복소수형[Complex] | 실수와 허수로 이루어진 복소수 |
수치형[Nomeric] | 숫자로 되어 있으며, 정수형[Integer]과 실수형[Double]이 있음ㅁ |
논리형[Logical] | 참과 거짓의 논리값으로 TRUE나 FALSE를 가짐 |
※ 복소수형은 수학 분야를 다룰 때 주로 사용하므로 일반적으로 잘 사용하지 않는다.
※ 기본적인 데이터 유형은 우선 순위가 존재 [문자형, 복소수형, 수치형, 논리형 순]
특수한 형태의 데이터 유형
Null | 존재하지 않는 객체로 지정할 때 사용 |
NA | Not Available의 약자로 결측치[Missing Value]를 의미 |
NaN | Not available Number의 약자로 수학적으로 계산이 불가능한 수를 의미 ex> sqrt(-5) : 음수에 대한 제곱근을 구할 수 없으므로 NaN로 표시됨 |
Inf | Infinite의 약자로 양의 무한대를 의미 음의 무한대는 "-Inf"로 표기 |
날짜형 데이터
Sys.Date( ) | 오늘 날짜 표시 |
Sys.time( ) | 오늘 날짜&시간 표시 |
date( ) | 오늘 요일&날짜&시간 표시 |
- 문자형 날짜를 날짜형 데이터로 변경할 때는 as.Date( ), strptime( ) 사용
- "YYYY-mm-dd"가 날짜형 데이터의 기본형식
- 표준서식이 아닌 문자형의 경우 뒤에서 format을 정해줘야 함
- "format = "은 생략해도 무방
- format( )을 사용하면 원하는 형식으로 출력가능
- %Y : 4자리 연도
%y : 2자리 연도 - %m : 월
%b : 월 - %d : 일
- %a : 요일
데이터의 유형을 알려주는 명령어
① mode()함수
데이터가 가지고 있는 유형을 문자형 형태로 알려주는 함수
문자형 데이터인 경우 "Character" 출력 |
복소수형 데이터인 경우 "Complex" 출력 |
수치형 데이터인 경우 "Numeric" 출력 |
논리형 데이터인 경우 " Logical" 출력 |
※ 기본적인 데이터 유형은 우선 순위가 존재 [문자형, 복소수형, 수치형, 논리형 순]
ex1> x <- c(7777, "lucky")
mode(x)
결과 : character
→ "lucky"가 문자형 데이터이므로 x를 문자형 데이터로 인식
ex2> x <- c(7777, FALSE)
mode(x)
결과 : numeric
→ 문자형 데이터가 없으므로 x를 숫자형 데이터로 인식
② is. 함수
지정한 데이터 유형인지 아닌지를 알려주는 함수
함수명 | 설명 | 결과내용 |
is.character() | 문자형 여부 | TRUE or FALSE |
is.complex() | 복소수형 여부 | |
is.numeric() | 수치형 여부 | |
is.integer() | 정수형 여부 | |
is.double() | 실수형 여부 | |
is.logical() | 논리형 여부 | |
is.null() | Null 여부 | |
is.na() | NA 여부 | |
is.finite() | 유한수치 여부 | |
is.infinite() | 무한수치 여부 |
ex> 다음 중 나머지 세 개의 명령과 결과가 다른 것은?
더보기
① x = c(1:4, NA)
is.na(x)
결과 : FALSE FALSE FALSE FALSE TRUE
② x <- c(1:4, NA)
is.na(x)
결과 : FALSE FALSE FALSE FALSE TRUE
③ x = c(1:4, NA)
x==NA
결과 : NA NA NA NA NA
→ 모든 연산에서 NA가 포함된 경우 결과도 항상 NA가 나옴!!
④ c(6,5,4,3,2) == 2
결과 : FALSE FALSE FALSE FALSE TRUE
데이터 유형의 변경
① as. 함수
연산자 | 설명 | 결과내용 |
as.character | 문자형으로 변환 | 변환되거나 NA |
as.complex() | 복소수형으로 변환 | |
as.numeric() | 수치형으로 변환 | |
as.integer() | 정수형으로 변환 | |
as.double() | 실수형으로 변환 | |
as.logical() | 논리형으로 변환 | |
as.date() | 날짜형으로 변환 format옵션을 통해 형식지정 가능 |
※ as. 함수 사용시 우선순위가 낮은 유형에서 높은 유형으로 강제적으로 변경 가능
단, 우선순위가 높은 유형에서 우선순위가 낮은 유형으로의 변환은 일부만 가능
- "YYYY-mm-dd"가 날짜형 데이터의 기본형식
- 표준서식이 아닌 문자형의 경우 뒤에서 format을 정해줘야 함
- "format = "은 생략해도 무방
728x90