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

Adrian Duffner duffnera at googlemail.com
Sun May 15 15:21:13 CEST 2011


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 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.
>



More information about the R-help mailing list