Denis Chabot wrote: > Hi, > > Simple question, but I did not figure out how to find the answer on my > own (wrong choice of keywords on my part). > > I have a character variable for time of day that has entries looking > like "6h30", "7h40", "12h25", "23h", etc. For the sake of this > message, say > > h = c("3h30", "6h30", "9h40", "11h25", "14h00", > "15h55", "23h") > > I could not figure out how to use chron to import this into times, so > I tried to extract the hours and minutes on my own. > > I used strsplit and got a list: > > h2 = strsplit(h, "h") > > h2 > [[1]] > [1] "3" "30" > > [[2]] > [1] "6" "30" > > [[3]] > [1] "9" "40" > > [[4]] > [1] "11" "25" > > [[5]] > [1] "14" "00" > > [[6]] > [1] "15" "55" > > [[7]] > [1] "23" > > It is where I am stuck. I would have like to extract a vector of > "hours" from this list, and a vector of "minutes", to reconstruct a > time of day. > > But the only command I know, unlist, makes a long vector of h, min, h, > min, h, min. > > For this in particular, but lists in general, how can one extract the > first item of each element in the list, then the second item of each > element, etc.? >
you can also want to convert this representation to something cron-readable: times(gsub("([0-9]+)h([0-9]*)", "\\1:0\\2:0", h)) [1] 03:30:00 06:30:00 etc. (the first 0 in the replacement accommodates for missing minutes digits, the second for seconds) vQ ______________________________________________ R-help@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.