R 을 이용하다보면 시간을 가끔 다뤄야할 때가 살면서 한번 올 것이다 (쪼오금 마이너한 내용이란 뜻).
Sys.time()라는 것을 이용하면 현재시간을 알 수가 있지만,
시간을 다룰때 아주 조금 마이너하게 시간,분,초 등의 정보들을 얻고자 할 때도 있다.
그럴때 어떻게 해야하는지 방법에 대해서 이야기 해보겠습니다.
x=Sys.time()
x
# "2020-11-02 13:43:23 KST"
y=as.POSIXlt(x) #list 형태
y
# "2020-11-02 13:43:23 KST"
unclass(y)
# 관련 정보들이 우르르르 나옴니다.
names(unclass(y))
# [1] "sec" "min" "hour" "mday" "mon" "year" "wday"
# "yday" "isdst" "zone" "gmtoff"
이중에서 원하는 초,분,시, 요일 등을 list불러오듯이 꺼내오면 됩니다!
주의 해야할 점은 as.POSIXlt()하고 as.POSIXct() 두 가지가 있기 때문에 꼭 as.POSIXlt()를 선택해야 합니다.
내용이 적기 때문에 기타 유용한 정보들을 추가하자면,
우리가 외부에서 날짜 데이터를 가져올때, 실제 R에서는 숫자 또는 글자로 읽혀지는 경우가 있습니다.
이렇게 되면 날짜를 다루기가 어려워 질수가 있습니다. 시간과 날짜를 합한다는지 기타 등
그럴때 사용하는것이 두가지가 있는데, 한가지는 as.Date와 strptime()이라는 기능입니다.
as.Date의 경우
as.Date('92-03-20','%Y-%m-%d')
# [1] "92-03-20"
as.Date('92-03-20','%y-%m-%d')
# [1] "1992-03-20"
날짜 정보를 넣고, 순서대로 년도, 월, 일 등의 정보를 써줘야 합니다.
다음으로 strptime()의 경우에는 요일 시간을 모두 다룰수가 있습니다.
strptime()의 예시를 해보시면 알게 됩니다.
dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
times <- c("23:03:20", "22:29:56", "01:03:30", "18:21:03", "16:56:26")
x <- paste(dates, times)
strptime(x, "%m/%d/%y %H:%M:%S")
제가 다루어 보니 바꿀 변수의 모양을 요일 지정할때 맞춰서 특수 기호까지 넣어야 하는것 같습니다.
예를 들어 '92/03/23' - '%y/%m/%d'요런식으로 해줘야지 '%y-%m-%d'이런식으로 하면 오류가 나는것 같습니다.
참고로 shiny에서 시간을 보여주고 싶으시다면, strftime() 기능을 이용하면됩니다.
추가 정보!!
+,- 도 가능합니다. 한번 해보시고 연습해보세요!
x<-Sys.time()
x<-as.POSIXct(x)
y<-Sys.time()
y<-as.POSIXct(y)
y-x
유용하셨거나, 잘 보셧다면 주변 광고 한번씩만 클릭 부탁드립니다! 감사합니다!
'기본적인프로그래밍 > R' 카테고리의 다른 글
[R] rcdk설치시 오류 해결방법 (0) | 2021.01.29 |
---|---|
[R] Plot에 expression을 이용하여 특수기호 추가하기! (0) | 2020.11.25 |
[R] R에서 특수문자 제거 방법! 혹은 나누는 방법 (0) | 2020.10.13 |
[R] read.table 시에 에러 해결 (0) | 2020.10.07 |
[R] 쉽게 배우는 R programming 기초 (6) (plot 저장, 크기 조절) (3) | 2020.07.14 |
댓글