[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