[R] julian day form POSIXt object

Gabor Grothendieck ggrothendieck at gmail.com
Fri Sep 30 13:22:11 CEST 2011


On Fri, Sep 30, 2011 at 4:47 AM, maxbre <mbressan at arpa.veneto.it> wrote:
> here is an alternative long and winded solution to the problem sticking on
> the julian function of chron package
>
> test$year <- as.integer(as.character(test$date, "%Y"))
> test$month <- as.integer(as.character(test$date, "%m"))
> test$day <- as.integer(as.character(test$date, "%d"))
> test$hour <- as.integer(as.character(test$date, "%H"))
>
> test$jday <-julian(test$month,test$day,test$year,origin=c(month=1, day=0,
> year=test$year))

Assume:

library(chron)
## test data
d <- as.chron(c("2000-01-01", "2000-02-01"))

## Then here are a few more approaches:

## 1
with(month.day.year(d), julian(month, day, year, origin = c(1, 0, year)))

## 2 - yearmon represents a year and month as a year + month/12 where
## month is 0 for jan, 1 for feb, etc.
library(zoo)
as.numeric(d - as.chron(trunc(as.yearmon(d))) + 1)

## 3
as.numeric(format(as.Date(d), "%j"))

Or if d is one or more "Date" class dates then #1 still works.  #2
works if we replace as.chron with as.Date.  #3 can be reduced to
as.numeric(format(d, "%j")) and does not require any external
packages.




or replace as.chron with as.Date if d is one or more "Date" class dates.

>
> thank you all for helping me in sorting out the problem
>
> by the way I like very much this very compact solution
> test$doy <- as.POSIXlt(test$date)$yday+1
> but on the other hand I'm still struggling to fully understand it,
> especially for what is concerning the part after $: so what is $yday for?
>
> if someone would be so kind to explain me this part I would be very grateful
>
> a newbie in R
> lesson learned
>
> max
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/julian-day-form-POSIXt-object-tp3855885p3859187.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-help mailing list