문자 변수를 날짜 변수로 변환하기
R에서 시계열 데이터를 다룰 때, 변수를 날짜 타입으로 변환한다면 플롯을 하는데 간편한 점이 많다. R의 날짜 데이터 타입으로는 "POSIXct" 가 있으며, as.POSIXct 함수를 통해 문자 변수를 POSIXct 타입으로 변환할 수 있다. 반대로 POSIXct 타입을 문자 타입으로 바꾸는 것은 format이나 as.character를 이용한다.
# create POSIXct variables as.POSIXct("080406 10:11", format = "%y%m%d %H:%M") ## [1] "2008-04-06 10:11:00 CDT"
as.POSIXct("2008-04-06 10:11:01 PM", format = "%Y-%m-%d %I:%M:%S %p") ## [1] "2008-04-06 22:11:01 CDT"
as.POSIXct("08/04/06 22:11:00", format = "%m/%d/%y %H:%M:%S") ## [1] "2006-08-04 22:11:00 CDT" # convert POSIXct variables to character strings
format(as.POSIXct("080406 10:11", format = "%y%m%d %H:%M"), "%m/%d/%Y %I:%M %p") ## [1] "04/06/2008 10:11 AM"
as.character(as.POSIXct("080406 10:11", format = "%y%m%d %H:%M"), format = "%m-%d-%y %H:%M") ## [1] "04-06-08 10:11"
만약 어떤 dataframe의 column이 POSIXct 타입이라면, 내부적으로는 정수를 저장하고 있기 때문에 Plot을 할 때는 숫자 형태로 변환하여 데이터를 순차적으로 나타내준다.
그래프 그리기
data <- read.csv("C:\\workspace\\r\\data\\data.csv") plot(data$dateFormat, data$value)
이렇게 기본 내장함수인 plot을 사용해도 x축을 시간으로 하여 괜찮은 모양으로 그려주는 것을 확인할 수 있다. 만약 x축 값의 포맷을 지정하거나, 적절한 간격을 주고 싶다면 ggplot2 패키지를 이용하는 것도 좋다.
GGPLOT2 라이브러리를 통한 그래프 그리기
library(scales) ggplot(data = data, aes(x = date, y = value)) + geom_line(size=2) + ylim(0,1000) + xlab("Time") + ylab("㎍/㎥") + scale_x_datetime(breaks = date_breaks("1 hour"), minor_breaks=date_breaks("1 hour"), labels=date_format("%H:%M"), limits=xlim) + ggtitle("title") + theme_bw() + theme(text = element_text(size = 25))
ggplot 명령어 설명
aes : (x축, y축에 사용될 변수를 지정한다.)
geom_line : line plot. size 키워드를 통해 선의 굵기 지정
ylim : y축의 범위를 지정함
xlab : x축 label
ylab : y축 label
scale_x_datetime : x축의 간격, 포맷을 지정함. (library(scales) 이후에 사용할 수 있다.)
ggtitle : title 지정
theme_bw() : 해당 테마 지정 (black & white style)
theme : 그래프의 전반적인 속성을 지정한다. 위에서는 텍스트 사이즈를 25 조정함
특정 날짜 범위에 있는 데이터만 골라내기
아래 코드는 date가 2018/01/16 인 row만 골라서 subset으로 저장한다. 이처럼 format을 통해 POSIXct 데이터 타입을 character 타입으로 변환할 수 있다.
subset <- data[(format(data$date, "%m/%d/%Y") == "01/16/2018")]
참고
http://biostat.mc.vanderbilt.edu/wiki/pub/Main/ColeBeck/datestimes.pdf
'Tools > R' 카테고리의 다른 글
R 패키지 설치시 gfortran 컴파일 오류 (0) | 2018.07.06 |
---|---|
R 유명한 패키지 정리 (0) | 2018.03.19 |
R - 특정 버전의 패키지 설치하기 (2) | 2018.02.26 |
R - csv 파일 인코딩 문제 해결 (0) | 2018.02.18 |
R - 종속변수가 순서 척도인 로지스틱 회귀분석 (4) | 2017.12.03 |