Will this do it for you:
> tmp <- seq(as.POSIXct('2011-08-01 13:00'),
as.POSIXct('2011-09-02 03:00'), by='45 min')
> # get just the hours
> hours <- format(tmp, "%H")
> weekdays <- format(tmp, "%w") %in% c('1', '2',
'3', '4','5')
> office <- (hours >= '08') & (hours < '18')
& weekdays
> result <- data.frame(time = tmp, office = office)
> head(result, 40)
time office
1 2011-08-01 13:00:00 TRUE
2 2011-08-01 13:45:00 TRUE
3 2011-08-01 14:30:00 TRUE
4 2011-08-01 15:15:00 TRUE
5 2011-08-01 16:00:00 TRUE
6 2011-08-01 16:45:00 TRUE
7 2011-08-01 17:30:00 TRUE
8 2011-08-01 18:15:00 FALSE
9 2011-08-01 19:00:00 FALSE
10 2011-08-01 19:45:00 FALSE
11 2011-08-01 20:30:00 FALSE
12 2011-08-01 21:15:00 FALSE
13 2011-08-01 22:00:00 FALSE
14 2011-08-01 22:45:00 FALSE
15 2011-08-01 23:30:00 FALSE
16 2011-08-02 00:15:00 FALSE
17 2011-08-02 01:00:00 FALSE
18 2011-08-02 01:45:00 FALSE
19 2011-08-02 02:30:00 FALSE
20 2011-08-02 03:15:00 FALSE
21 2011-08-02 04:00:00 FALSE
22 2011-08-02 04:45:00 FALSE
23 2011-08-02 05:30:00 FALSE
24 2011-08-02 06:15:00 FALSE
25 2011-08-02 07:00:00 FALSE
26 2011-08-02 07:45:00 FALSE
27 2011-08-02 08:30:00 TRUE
28 2011-08-02 09:15:00 TRUE
29 2011-08-02 10:00:00 TRUE
30 2011-08-02 10:45:00 TRUE
31 2011-08-02 11:30:00 TRUE
32 2011-08-02 12:15:00 TRUE
33 2011-08-02 13:00:00 TRUE
34 2011-08-02 13:45:00 TRUE
35 2011-08-02 14:30:00 TRUE
36 2011-08-02 15:15:00 TRUE
37 2011-08-02 16:00:00 TRUE
38 2011-08-02 16:45:00 TRUE
39 2011-08-02 17:30:00 TRUE
40 2011-08-02 18:15:00 FALSE> View(result)
On Tue, Feb 14, 2012 at 2:35 PM, Jose Bustos Melo <jbustosmelo at
yahoo.es> wrote:> Hello R-List,
>
> I have a question about recoding from a date time object.? I have tried
using as.POSIXct objects and Chron Objects, but I can get the what I want.
>
> I need to create a new variable from a date-time object, adding
"Office Time" for those events that happens between 08:00:00 to
18:00:00 and "Out of Office" all the others, but not including
weekends. I have created a fake data.
>
> tmp <- seq(as.POSIXct('2011-08-01 13:00'),
as.POSIXct('2011-09-02 03:00'), by='45 min')
>
> Is there any valid way to do it? I have spend so much time without any good
luck and I don't have any good code to show!
> Thanks in advance!
> Jos?
>
> ? ? ? ?[[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.
>
--
Jim Holtman
Data Munger Guru
What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.