[R] Lubdridate: subset based on hour and minute

Roy Mendelssohn - NOAA Federal roy.mendelssohn at noaa.gov
Mon Jan 2 21:44:17 CET 2017


The trick is to realize times are stored internally in a special format,  though they can be displayed in several ways based on the internal representation.  The trick in doing comparison with times is to make certain what you are comparing with has also been put into the same internal time format.  This should make clear the basis for the logical tests:

> as.numeric(test)
[1] 34200 36000 37800 39600
> 
> as.numeric(hm("10:00"))
[1] 36000
> 

-Roy


> On Jan 2, 2017, at 12:39 PM, Joe Ceradini <joeceradini at gmail.com> wrote:
> 
> Bingo! Thanks! I somehow couldn't find an example like that via google.
> 
> Joe
> 
> On Mon, Jan 2, 2017 at 1:35 PM, Roy Mendelssohn - NOAA Federal
> <roy.mendelssohn at noaa.gov> wrote:
>>> test > hm("10:00")
>> [1] FALSE FALSE  TRUE  TRUE
>>> test[test > hm("10:00")]
>> [1] "10H 30M 0S" "11H 0M 0S"
>> 
>> -Roy
>> 
>> 
>>> On Jan 2, 2017, at 12:27 PM, Joe Ceradini <joeceradini at gmail.com> wrote:
>>> 
>>> Thanks for the reply Roy!
>>> 
>>> Perhaps you're showing me the way and I'm missing it - how would I
>>> subset to only 1030 and 1100, excluding 1000? It seems I would need to
>>> say, give me all time greater than 10:00, but the hours and minutes
>>> are in separate slots, which is throwing me off.
>>> 
>>> Thanks again.
>>> 
>>> On Mon, Jan 2, 2017 at 1:13 PM, Roy Mendelssohn - NOAA Federal
>>> <roy.mendelssohn at noaa.gov> wrote:
>>>> Hi Joe:
>>>> 
>>>> See below.
>>>>> On Jan 2, 2017, at 12:01 PM, Joe Ceradini <joeceradini at gmail.com> wrote:
>>>>> 
>>>>> Hi folks,
>>>>> 
>>>>> I must be missing something obvious/painfully simple here....
>>>>> 
>>>>> How do I subset a time vector based on hours AND minutes? So, in this
>>>>> example, I want all time greater than 10:00, i.e., 10:30 and 11:00.
>>>>> I'm working with lubridate which separates the hours and minutes into
>>>>> separate slots.
>>>>> 
>>>>> require(lubridate)
>>>>> 
>>>>> test <- hm(c("9:30", "10:00", "10:30", "11:00"))
>>>>> test
>>>>> [1] "9H 30M 0S"  "10H 0M 0S"  "10H 30M 0S" "11H 0M 0S"
>>>>> 
>>>>> This gets 11 but not 1030
>>>>> test[test at hour > 10]
>>>>> [1] "11H 0M 0S"
>>>>> 
>>>>> This gets 1030 but not 11
>>>>> test[test at hour > 9 & test at minute > 0]
>>>>> [1] "10H 30M 0S"
>>>> 
>>>> test[test at hour > 9]
>>>> [1] "10H 0M 0S"  "10H 30M 0S" "11H 0M 0S"
>>>> 
>>>> 
>>>> You are using a logical "and" in your test - so the condition "test at minute > 0" isn't met for 11:00 and therefore it doesn't show up. as both conditions must be met  You could also do:
>>>> 
>>>>> test[test at hour >= 10]
>>>> [1] "10H 0M 0S"  "10H 30M 0S" "11H 0M 0S"
>>>> 
>>>> -HTH,
>>>> 
>>>> Roy
>>>> 
>>>>> 
>>>>> Thanks and happy new year!
>>>>> Joe
>>>>> 
>>>>> ______________________________________________
>>>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>>> 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.
>>>> 
>>>> **********************
>>>> "The contents of this message do not reflect any position of the U.S. Government or NOAA."
>>>> **********************
>>>> Roy Mendelssohn
>>>> Supervisory Operations Research Analyst
>>>> NOAA/NMFS
>>>> Environmental Research Division
>>>> Southwest Fisheries Science Center
>>>> ***Note new street address***
>>>> 110 McAllister Way
>>>> Santa Cruz, CA 95060
>>>> Phone: (831)-420-3666
>>>> Fax: (831) 420-3980
>>>> e-mail: Roy.Mendelssohn at noaa.gov www: http://www.pfeg.noaa.gov/
>>>> 
>>>> "Old age and treachery will overcome youth and skill."
>>>> "From those who have been given much, much will be expected"
>>>> "the arc of the moral universe is long, but it bends toward justice" -MLK Jr.
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Cooperative Fish and Wildlife Research Unit
>>> Zoology and Physiology Dept.
>>> University of Wyoming
>>> JoeCeradini at gmail.com / 914.707.8506
>>> wyocoopunit.org
>> 
>> **********************
>> "The contents of this message do not reflect any position of the U.S. Government or NOAA."
>> **********************
>> Roy Mendelssohn
>> Supervisory Operations Research Analyst
>> NOAA/NMFS
>> Environmental Research Division
>> Southwest Fisheries Science Center
>> ***Note new street address***
>> 110 McAllister Way
>> Santa Cruz, CA 95060
>> Phone: (831)-420-3666
>> Fax: (831) 420-3980
>> e-mail: Roy.Mendelssohn at noaa.gov www: http://www.pfeg.noaa.gov/
>> 
>> "Old age and treachery will overcome youth and skill."
>> "From those who have been given much, much will be expected"
>> "the arc of the moral universe is long, but it bends toward justice" -MLK Jr.
>> 
> 
> 
> 
> -- 
> Cooperative Fish and Wildlife Research Unit
> Zoology and Physiology Dept.
> University of Wyoming
> JoeCeradini at gmail.com / 914.707.8506
> wyocoopunit.org

**********************
"The contents of this message do not reflect any position of the U.S. Government or NOAA."
**********************
Roy Mendelssohn
Supervisory Operations Research Analyst
NOAA/NMFS
Environmental Research Division
Southwest Fisheries Science Center
***Note new street address***
110 McAllister Way
Santa Cruz, CA 95060
Phone: (831)-420-3666
Fax: (831) 420-3980
e-mail: Roy.Mendelssohn at noaa.gov www: http://www.pfeg.noaa.gov/

"Old age and treachery will overcome youth and skill."
"From those who have been given much, much will be expected" 
"the arc of the moral universe is long, but it bends toward justice" -MLK Jr.



More information about the R-help mailing list