[R] 03. 형 변환(casting)
형 변환(Casting)은 자료형의 타입을 변환하는 것을 말한다.
형 변환이 필요한 이유는 서로 다른 데이터타입끼리의 연산이 불가능 하기 때문이다.
ex, 문자타입과 숫자타입 연산 불가능, 문자타입과 날짜타입 연산 불가능
(단, 날짜 타입과 숫자 타입 서로는 연산가능)
형 변환의 종류
암시적형변환(자동형변환) : 사용자가 바꾸지 않아도 내부적으로 자료형이 변환되는 경우
명시적형변환 : 사용자가 특정 함수를 사용하여 의도적으로 자료형을 변환하는 경우
자료형과 자료구조 확인하기
mode() : 데이터의 유형을 확인하는 함수
typeof() : 데이터의 유형을 확인하는 함수
- mode()와의 차이점
: mode()함수는 정수, 실수 모두 numeric(숫자형)으로 표현, typeof()함수는 정수(integer)와 실수(double) 구분
class() : 데이터의 속성을 확인 할 수 있는 함수
str() : 데이터 유형과 값,속성, 길이 등을 전체적으로 확인 할 수 있는 함수
head() : 데이터의 처음 6행까지의 값을 보여주는 함수
tail() : 데이터의 마지막 6행까지의 값을 보여주는 함수
R의 형변환 함수
as.바꾸고 싶은 자료형/자료구조(바꾸고 싶은 객체)
-자료형변환
as.character () : 객체를 문자타입으로 변환
as.numeric() / as.integer() / as. double() : 객체를 숫자형/정수형/실수형으로 변환
as.Date () : 객체를 날짜타입으로 변환
as.logical() : 객체를 논리타입으로 변환
-자료구조변환
as.vector() : 객체를 벡터로 변환
as.matrix() : 객체를 행렬로 변환
as.array() : 객체를 리스트로 변환
as.list() : 객체를 리스트로 변환
as.data.frame() : 객체를 데이터프레임으로 변환
as.factor() : 객체를 범주형으로 변환
v1 <- 1
class(v1) #[1] "numeric"
v1<-as.character(v1)
class(v1) #[1] "character"
* 날짜를 형식에 맞춰 출력하는 방법
1) 문자타입으로 날짜 포맷에 맞춰서 출력하기
(문자타입이 아닌 객체를 문자로 바꿔 날짜포맷에 맞춰 출력 )
as.character(문자타입이 아닌 객체, format)
vdate1 <- Sys.Date() # 오늘날짜(날짜타입)
as.character(vdate1, '%Y') # 최근 버전부터 불가(이전 버전 가능)
strftime(vdate1, '%Y') # 문자타입 리턴(str <- time format 변경)
2) 날짜타입으로 형변환하여 출력하기
(날짜타입이 아닌 객체를 날짜로 바꿔 날짜포맷에 맞춰 출력)
as.Date(날짜타입이 아닌 객체, format)
vdate2 <- '2023/01/01'
vdate2 + 100 # 연산불가
as.Date(vdate2) + 100 # 연산가능(format 생략 시 자동으로 년-월-일 순서로 파싱)
as.Date(vdate2, '%Y/%m/%d') + 100 # 연산가능
strptime(vdate2) # format 생략 불가
strptime(vdate2, '%Y/%m/%d') # format 전달
as.Date(19951201, '%Y/%m/%d') + 100 # 연산가능
[ 참고 - 날짜포맷(R, Python 공통) ]
%Y : 네자리 연도
%y : 두자리 연도
%m : 월
%d : 일
%H : 시
%M : 분
%S : 초
%A : 요일(문자)
%w : 요일(숫자) 일요일:0, 월요일:1
strftime() 함수는 format 으로 가리키는 스트링에서 제어하는 대로, s로 가리키는 배열에 바이트를 배치합니다.