#將字串轉換為時間
d=as.date(
"2015-5-6") d
#獲取月份
months(d)
#獲取星期
weekdays(d)
結果:
> d
[1]"2015-05-06"
> months(d)
[1]"五月"
> weekdays(d)
[1]"星期三"
如何提取季節,月份,使用lubridate包
年份:== year(datae)==
月份: month(datae)
日期:== day(datae)==
季節:== quarter(datae)==
還有其他有用的函式
**
library(lubridate)
d<-c(
"2012-1-10","2013-5-9","2014-6-25"
)year(d)
month(d)
day(d)
quarter(d)
結果
> library(lubridate)
> d<-c(
"2012-1-10","2013-5-9","2014-6-25"
)> year(d)
[1] 2012 2013 2014
> month(d)
[1] 1 5 6
> day(d)
[1] 10 9 25
> quarter(d)
[1] 1 2 2
hms包,用於儲存和格式化時間,基於difftime型別,使用s3的物件導向資料結構。
函式列表:
hms: 建立乙個hms型別物件
is.hms: 判斷是否是hms型別
parse_hm: 解析hm值
parse_hms: 解析hms值
round_hms:四捨五入對齊
trunc_hms:裁剪對齊
as.hms: hms泛型函式,s3型別,用於隱式呼叫它的繼承函式
as.hms.character: character轉型hms,用於as.hms的繼承呼叫
as.hms.default: hms轉型hms,用於as.hms的繼承呼叫
as.hms.difftime:difftime轉型hms,用於as.hms的繼承呼叫
as.hms.numeric: numeric轉型hms,用於as.hms的繼承呼叫
as.hms.posixlt: posixlt轉型hms,用於as.hms的繼承呼叫
as.hms.posixt: posixt轉型hms,用於as.hms的繼承呼叫
as.character.hms: hms轉型character,用於as.character的繼承呼叫
as.data.frame.hms: hms轉型data.frame,用於as.data.frame的繼承呼叫
as.posixct.hms: hms轉型posixct,用於as.posixct的繼承呼叫
as.posixlt.hms: hms轉型posixlt,用於as.posixlt的繼承呼叫
format.hms: 格式化hms,用於format的繼承呼叫
print.hms: 列印hms對像,用於print的繼承呼叫
從函式列表可以看到,hms包的功能很單一,就在做資料型別和資料變型,是底層的資料結構包,設計思路與zoo包的設計思路一致。
hms包中,有大量的as.***()函式、format.hms()函式和print.hms()函式,是被用於s3型別函式繼承呼叫的,是不需要我們在寫程式的時候顯示呼叫的。
例如:
hms()函式,用於建立乙個hms型別的物件。
函式定義:
hms(seconds = null, minutes = null, hours = null, days = null)
hms()函式,接收4個引數,分別對應秒,分,時,日。
建立hms物件
建立12:34:56的時間物件
a1<-hms(56, 34, 12);a1
12:34:56
建立 10日12:34:56的時間物件
a2<-hms(56, 34, 12,10);a2
252:34:56
列印結果的第一位252=10*24+12。
== 把字串轉hms==
as.hms('19:13:14')
19:13:14
非法時間字串轉型
as.hms('19:78:14')
na
as.***.hms:把hms轉型到其他型別
預設轉型
as.hms(a1)
12:34:56
hms轉型character,實際會隱式呼叫as.character.hms()函式
as.character(a1)
[1] "12:34:56"
hms轉型posixct
as.posixct(a1)
[1] "1970-01-01 12:34:56 utc"
hms轉型posixlt
as.posixlt(a1)
[1] "1970-01-01 12:34:56 utc"
parse_hms對字串進行轉型,對比parse_hms()與as.hms()結果一樣的。
執行parse_hms
parse_hms("12:34:56.789")
12:34:56.789
as.hms("12:34:56.789")
12:34:56.789
執行parse_hm
parse_hm("12:34")
12:34:00
as.hms("12:34")
na
round_hms()函式,是把時間進行四捨五入對齊。
按秒,以5的倍數進行對齊,四捨五入
round_hms(as.hms("12:34:51"), 5)
12:34:50
round_hms(as.hms("12:34:54"), 5)
12:34:55
round_hms(as.hms("12:34:56"), 5)
12:34:55
round_hms(as.hms("12:34:59"), 5)
12:35:00
按秒,以60的倍數對齊
round_hms(as.hms("12:34:56"), 60)
12:35:00
trunc_hms()函式,是把時間進行裁剪對齊。
按秒去掉末位,以5的倍數進行對齊
trunc_hms(as.hms("12:34:01"), 5)
12:34:00
trunc_hms(as.hms("12:34:44"), 5)
12:34:40
trunc_hms(as.hms("12:34:56"), 60)
12:34:00
生成時間序列
seq(as.date("2015-02-01"), length=19, by="month")
[1] "2015-02-01" "2015-03-01" "2015-04-01" "2015-05-01" "2015-06-01" "2015-07-01"
[7] "2015-08-01" "2015-09-01" "2015-10-01" "2015-11-01" "2015-12-01" "2016-01-01"
[13] "2016-02-01" "2016-03-01" "2016-04-01" "2016-05-01" "2016-06-01" "2016-07-01"
[19] "2016-08-01"
可以參考: python時間如何處理 python 時間處理
time模組 獲取時間 time.time 獲取當前時間的時間戳 time.strftime y m d h m s 獲取格式化後的字元 type str time.localtime 獲取元組形式的時間 time.gmtime 將時間轉換成utc格式的元組格式時間 importtimeprint ...
R語言中的並行處理
網上有人說foreach包可以並行,我就去弄了,結果發現乙個普通的二重迴圈什麼事都不錯都很卡!搗鼓了半天才發現是foreach的問題 為了提速,做了如下事宜 計算trustl r.trust matrix matrix rep 0,r.item count r.user count nrow r.u...
R語言中的時間與日期
r 中的日期與時間 一 儲存格式 r中的三種日期儲存格式分別為posixct,posixlt和date格式,三種格式之間可以使用as.posixct,as.posixlt,as.date進行互換。如果不指定格式,as.date將會輸出乙個 y m d形式的的date 注意,sys.time返回的是乙...