본문 바로가기
10. 시계열/날짜시간데이터

R에서 날짜,시간 데이터 인식하는 법 (strptime)

by makhimh 2021. 9. 16.
반응형

아래와 같은 데이터프레임이 있다고 합시다.

 

date=c("2021-01-01 01:01:01","2021-01-02 02:01:01","2021-01-03 03:01:01","2021-01-04 04:01:01","2021-01-05 05:01:01")
x=c(10,20,30,40,50)
dt=data.frame(date,x)

> dt
                 date  x
1 2021-01-01 01:01:01 10
2 2021-01-02 02:01:01 20
3 2021-01-03 03:01:01 30
4 2021-01-04 04:01:01 40
5 2021-01-05 05:01:01 50

> str(dt)
'data.frame':	5 obs. of  2 variables:
 $ date: chr  "2021-01-01 01:01:01" "2021-01-02 02:01:01" "2021-01-03 03:01:01" "2021-01-04 04:01:01" ...
 $ x   : num  10 20 30 40 50

 

date 열은 날짜시간데이터이므로 날짜시간 데이터로 인식을 시켜주어야 합니다. 이때 strptime 함수를 사용합니다. 형식은 아래와 같습니다 .

 

strptime(x,format,tz)

 

x에는 데이터를 넣습니다.

format은 "%Y-%m-%d %H:%M:%S" 등으로 넣습니다. 입력한 데이터 형태에 달려있습니다. Y,m,d,H,M,S 순서대로 연도,월,일,시,분,초 입니다.

tz는 time zone인데 비워두면 사용자의 tz로 설정됩니다. 

 

위 데이터에 적용해봅시다. 

 

dt$date=strptime(dt$date,format=c("%Y-%m-%d %H:%M:%S"))

> dt
                 date  x
1 2021-01-01 01:01:01 10
2 2021-01-02 02:01:01 20
3 2021-01-03 03:01:01 30
4 2021-01-04 04:01:01 40
5 2021-01-05 05:01:01 50

 

겉보기엔 똑같은데 str함수를 적용해보면 날짜로 바뀐 것을 알 수 있습니다. 

 

> str(dt)
'data.frame':	5 obs. of  2 variables:
 $ date: POSIXlt, format: "2021-01-01 01:01:01" "2021-01-02 02:01:01" ...
 $ x   : num  10 20 30 40 50

 

반응형

댓글