我无法弄清楚如何将Sys.Date()转换为YYYYDDD格式的数字.如果DDD是一年中的日期,即1月1日将是2016001年12月31日将是2016365
Date <- Sys.Date() ## The Variable Date is created as 2016-01-01
SomeFunction(Date) ## Returns 2016001
Run Code Online (Sandbox Code Playgroud)
您可以format按如下方式使用该功能:
format(Date, '%Y%j')
Run Code Online (Sandbox Code Playgroud)
这使:
[1] "2016161" "2016162" "2016163"
Run Code Online (Sandbox Code Playgroud)
如果要以其他方式格式化,请参阅?strptime所有可能的选项.
或者,您可以使用或包中的year和yday函数将它们粘贴在一起:data.tablelubridatepaste0
library(data.table) # or: library(lubridate)
paste0(year(Date), yday(Date))
Run Code Online (Sandbox Code Playgroud)
这将给你相同的结果.
两个选项返回的值都是类字符.将上述解决方案包含在内as.numeric()以获得实数.
使用数据:
> Date <- Sys.Date() + 1:3
> Date
[1] "2016-06-09" "2016-06-10" "2016-06-11"
> class(Date)
[1] "Date"
Run Code Online (Sandbox Code Playgroud)