Re: [R] changing the day of the week in dates format

From: Adrian Duffner <duffnera_at_googlemail.com>
Date: Sun, 15 May 2011 18:42:10 +0200

Dear Dave,

please always answer to the whole list.

To answer your question: A quick check showed that your proposed code will not work as you expected it
 > tt <- as.POSIXlt(strptime("2011-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz="GMT"))
 > tt
[1] "2011-01-01 GMT"
 > tt+ 365.25*24*60*60
[1] "2012-01-01 06:00:00 GMT"
 > tt+ 365.25*24*60*60*2
[1] "2012-12-31 12:00:00 GMT" I am not aware of a addtime function in base package (similar to difftime()), maybe there is one in one of the packages on cran. A quick google search provided the following link for adding years to a date http://tolstoy.newcastle.edu.au/R/help/05/10/13700.html, where seq.Date() was proposed.

Regards
Adrian

Am 15.05.2011 16:25, schrieb Dave Evens:
> Hi Adrian,
>
> Many thanks for your reply.
>
> Suppose I wanted to increment the date by a year - how would I account
> for things like leap years?
>
> Would I just do
> > mydaysx[select] <- mydaysx[select] + 365.25*24*60*60

>
> Regards,
> Dave
> ------------------------------------------------------------------------
> *From:* Adrian Duffner <duffnera_at_googlemail.com>
> *To:* Dave Evens <daveevens1_at_yahoo.co.uk>
> *Cc:* "r-help_at_r-project.org" <r-help_at_r-project.org>
> *Sent:* Sunday, 15 May 2011, 14:21
> *Subject:* Re: [R] changing the day of the week in dates format
>
> Hi Dave,
>
> your problem is that you are working with a S3 class, what is mainly a
> list with naming convention. Hence it is possible to change just one
> entry of the list, but it is nearly never recommendable.
>
> So a slight change to your code should provide you the required output:
> > mydaysx[select] <- mydaysx[select] + 2*24*60*60
> > select <- mydaysx$wday==6
> > sum(select)

> [1] 0
>
> In this case not only the entry $mday of the list is changed, but the
> whole object is updated.
>
> Cheers
> Adrian
>
> Am 14.05.2011 20:44, schrieb Dave Evens:
> > Dear all,
> >
> > I have a question related to the POSIXlt function in R.
> >
> > I have a set of dates and times, for exmaple:
> >
> > startx<- as.POSIXct("2011-01-01 00:00:00")
> > finx<- as.POSIXct("2011-12-31 00:00:00")
> >
> > daysx<- seq(startx, finx, by="24 hours")
> >
> > I
> > want to change the dates of all the days falling on a Saturday to the
> > next working day (i.e. Monday). So I convert dates to POSIXlt
> >
> > mydaysx<- as.POSIXlt(daysx)
> >
> > Then I change select all the Saturday's and move them on to Monday
> >
> > select<- mydaysx$wday==6
> > mydaysx$mday[select]<- mydaysx$mday[select] + 2
> >
> > However,
> > although all the new dates (i.e. mydaysx) are actual days of the year -
> > the $wday have not been updated and the $mdays have not all been
> > corrected (i.e. those falling into the next month). So if I do
> >
> > select<- mydaysx$wday==6
> >
> > I still get the same set of days as before.
> >
> > Is there a way to do this?
> >
> > Thanks,
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help_at_r-project.org <mailto: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.
> >
>
>
>

        [[alternative HTML version deleted]]



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. Received on Sun 15 May 2011 - 16:43:45 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 15 May 2011 - 18:00:07 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive