[英]How do you convert POSIX date to day of year?
標題是:如何將 POSIX 日期轉換為年份?
另一種方法是使用strftime()
格式化"POSIXt"
對象:
R> today <- Sys.time()
R> today
[1] "2012-10-19 19:12:04 BST"
R> doy <- strftime(today, format = "%j")
R> doy
[1] "293"
R> as.numeric(doy)
[1] 293
這比記住 POSIX 標准中的年份是從零開始更可取。
正如?POSIXlt
揭示的那樣, POSIXlt
日期的$yday
POSIXlt
后綴(或什POSIXlt
的向量)將轉換為一年中的某一天。 請注意,POSIX 將 1 月 1 日計為第 0 天,因此您可能希望在結果中加 1。
我花了很長時間才找到這個,所以我想我會問並回答我自己的問題。
可替代地,優良lubridate
包提供yday
功能,這僅僅是用於上述方法的包裝。 它方便地為其他單位( month
、 year
、 hour
、...)定義了類似的函數。
today <- Sys.time()
yday(today)
我意識到這不是海報所要尋找的,但我需要將 POSIX 日期時間轉換為一年中的小數天以進行時間序列分析,並最終這樣做:
today <- Sys.time()
doy2015f<-difftime(today,as.POSIXct(as.Date("2015-01-01 00:00", tzone="GMT")),units='days')
data.table
包還提供了一個data.table
yday()
函數。
require(data.table)
today <- Sys.time()
yday(today)
這是我的做法:
as.POSIXlt(c("15.4", "10.5", "15.5", "10.6"), format = "%d.%m")$yday
# [1] 104 129 134 160
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.