iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
0
AI & Data

[Data Science系列]成為哥布林的那件事-非常粗(初)心者系列 第 29

[Data Science系列]利用R語言來做日期與時間-Time is Money, Friend

今天我們來討論時間和日期在R裡面如何運用吧
就如同哥布林們常說的一句話time is money, friend

首先是日期,當我們輸入指令sys.Date()將會出現今天的日期
透過class的指令我們可以知道這是一種叫Date的資料

today <- Sys.Date()
today
[1] "2018-11-13"

class(today)
[1] "Date"

另一個是時間的指令,注意到這邊的time是小寫的,不同於上面的Date是大寫的
而這是一種叫POSIX的資料種類

now <- Sys.time()
now
[1] "2018-11-13 20:27:51 CST"
class(now)
[1] "POSIXct" "POSIXt" 

那假設我們需要設定某個特定的日期,又該如何做呢?
以2018-11-05,這邊要注意的是別忘了"引號

someday <- as.Date("2018-11-05")
someday
[1] "2018-11-05"

class(someday)
[1] "Date"

我們同樣也可以交換位置,預設的話是YYYY-mm-dd
因此若我們需要將位置調換的話,我們就需要告訴R排列的方式
記得Y這邊年的部分需要用大寫

as.Date("05-11-2018", format = "%d-%m-%Y")
[1] "2018-11-05"

時間的話就得用POSIXct這個指令,作法如同上面
但記得須將所有的都輸入

as.POSIXct("2018-11-13 20:42:19")
[1] "2018-11-13 20:42:19 CST"

而日期也是可以計算的假如我們將之前的日期資料相減,則可以得知相差的天數
或是將日期+1

today
[1] "2018-11-13"

someday <- as.Date("2018-11-05")

today - someday
Time difference of 8 days

today + 1
[1] "2018-11-14"

而時間的部分則是用最小值,秒數
因此若我們將今天+1則會加上一秒

now
[1] "2018-11-13 20:27:51 CST"
now + 1
[1] "2018-11-13 20:27:52 CST"

同樣的原理也可以運用到時間上
唯一要注意的是若是時間間隔過高的話將會以days, hours, minutes來做四捨五入

sometime <- as.POSIXct("2018-11-10 20:42:19")

now
[1] "2018-11-13 20:27:51 CST"

now - sometime
Time difference of 2.989956 days

要知道這邊日期是如何來做相減的,這邊得知日期的最初為1970-01-01是起始日期
因此假設我們將日期unclass可以得到的數字為2

oneday <- as.Date("1970-01-03")
unclass(oneday)
[1] 2

透過以上我們可以得知數字及日期的用法


上一篇
[Data Science系列]利用R語言來管理regular expression之2-sub, gsub, subway
下一篇
[Data Science系列]利用R語言來管理時間-今天的結束只是剛開始而已
系列文
[Data Science系列]成為哥布林的那件事-非常粗(初)心者30

尚未有邦友留言

立即登入留言