Rei*_*son 56
另一种方法是"POSIXt"使用strftime()以下方法格式化对象:
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
Run Code Online (Sandbox Code Playgroud)
最好记住POSIX标准中的年份日为零.
Gre*_*gor 22
如图所示?POSIXlt,日期的$yday后缀POSIXlt(甚至是这样的矢量)将转换为一年中的某一天.请注意,POSIX将1月1日计为第0天,因此您可能希望将1添加到结果中.
我花了很长时间才找到这个,所以我想我会回答我自己的问题.
或者,优秀的lubridate包提供了yday功能,这只是上述方法的包装.它方便地定义为其他单位(类似的功能month,year,hour,...).
today <- Sys.time()
yday(today)
Run Code Online (Sandbox Code Playgroud)