use*_*363 14 r date julian-date
我有一个日期列的格式:16Jun10,我想提取朱利安日.我有各种各样的岁月.
我已经尝试过julian和mdy.date这些函数,但似乎没有用.
Mar*_*box 24
尝试以下操作从类character(即文本)转换为类POSIXlt,然后提取Julian day(yday):
tmp <- as.POSIXlt("16Jun10", format = "%d%b%y")
tmp$yday
# [1] 166
Run Code Online (Sandbox Code Playgroud)
有关功能设置的更多详细信息:
?POSIXlt
?DateTimeClasses
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用一个Date类,然后format用来提取朱利安日(注意这个类定义了1:366之间的朱利安日,而POSIXlt是0:365):
tmp <- as.Date("16Jun10", format = "%d%b%y")
format(tmp, "%j")
# [1] "167"
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 19
同理:
require(lubridate)
x = as.Date('2010-06-10')
yday(x)
[1] 161
Run Code Online (Sandbox Code Playgroud)
另请注意,使用lubridate:
> dmy('16Jun10')
[1] "2010-06-16 UTC"
Run Code Online (Sandbox Code Playgroud)
您可以使用R的insol包,它具有JD(x, inverse=FALSE)将POSIXct转换为Julian Day Number(JDN)的功能.
insol包也有JDymd(year,month,day,hour=12,minute=0,sec=0)自定义日期.
要显示您可能必须设置的整个儒略日期(JD)options(digits=16).