[R] need help to manipulate function and time interval

Uwe Ligges ligges at statistik.uni-dortmund.de
Sun Aug 12 15:24:06 CEST 2007



Matthew Walker wrote:
> Uwe Ligges wrote:
>> Henrique Dallazuanna wrote:
>>  
>>> Hi,
>>>
>>> Try whit:
>>>
>>> if(time[j] >= "18:00:00" & < "23:59:59")
>>>     
>>
>> This code is obviously wrong and does not help for the next few lines 
>> in the questioner's message, please do not post unsensible stuff.
>>
>> Uwe Ligges
>>
>>   
> 
> Actually, I would have said that was quite an interesting solution.  If 
> the time is guaranteed to be in this 8 character format, then that 
> idea's quite easily implemented:
> 
> # Returns true if time is between 18:00:00 and 23:59:59
> check_time <- function(time_string) {
>  if (nchar(time_string)!=8) stop ("Incorrect format")
>  time_string >= "18:00:00" & time_string <= "23:59:59"
> }
> 
> 
>  > check_time("19:59:00")
> [1] TRUE
>  > check_time("16:59:00")
> [1] FALSE
>  >
>  > check_time("18:00:00")
> [1] TRUE
>  > check_time("23:59:59")
> [1] TRUE
>  > check_time("24:00:00")
> [1] FALSE
>  >
>  > check_time("18:05")
> Error in check_time("18:05") : Incorrect format
> 
> 
> Perhaps there is an issue if the locale does not sort character-based 
> numbers in the same way as ASCII?  But Otherwise, I can't see why this 
> solution wouldn't do the job.
 >
> A more robust solution solution would parse the strings (?strptime) and 
> then check their days/hours/mins/seconds (?DateTimeClasses).  But 
> perhaps the above is sufficient?

Well, the interesting part of the original question that everynody seems 
to omit now was the second part:

if (time[j] is between 22:00:00 and 05:59:59)

hence the answer is still not sufficient (even if the syntax error has 
been corrected) - and hence I asked for the format the time is 
originally in.

Uwe Ligges




> Cheers,
> 
> Matthew



More information about the R-help mailing list