使用R中的lubridate包找到一年中的某一天

时间:2015-12-09 21:30:45

标签: r lubridate

我正在寻找带有lubridate的POSIXct类对象的一年中的某一天。例如,12-9-2015 is day 343

使用lubridate很容易找到一周或一个月的日期:

> lubridate::wday("2015-12-09 04:27:56 EST", labels = T)
Wed
> lubridate::day("2015-12-09 04:27:56 EST")
9

一年中有没有一种简单的方法可以这样做?我已经搜索了文档和其他问题,但还没有找到答案。

2 个答案:

答案 0 :(得分:22)

正确的功能是yday,如

lubridate::yday(Sys.time())

答案 1 :(得分:0)

在从 u/blindjesse 绊倒这个答案之前想出了一种更复杂的方法来做到这一点:

# compute the time interval from the first of the year until now
YTD = interval(floor_date(now(), unit='year'), now())
# compute the length of the interval in days, and discard the fractional part
as.integer(time_length(YTD, "day"))

顺便说一句,u/blindjesse 答案的更紧凑版本是:

lubridate::yday(now())