Re: [R] regexp help needed

From: Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>
Date: Fri, 28 Nov 2008 11:51:48 +0100

Lauri Nikkinen wrote:
> Hello,
>
> I have a vector of dates and I would like to grep the year component
> from this vector (= all digits
> after the last punctuation character)
>
> dates <- c("28.7.08","28.7.2008","28/7/08", "28/7/2008", "28/07/2008",
> "28-07-2008", "28-07-08")
>
> the resulting vector should look like
>
> "08" "2008" "08" "2008" "2008" "2008" "08"
>
> I tried something like (Perl style) with no success
>
> grep("[[:punct:]]?\\d", dates, value=T, perl=T)
>
> Any ideas?

> sub(".*[[:punct:]]([0-9]*$)", "\\1", dates)

[1] "08"   "2008" "08"   "2008" "2008" "2008" "08"

> sub(".*[[:punct:]](.*)$", "\\1", dates)
[1] "08" "2008" "08" "2008" "2008" "2008" "08"
> sub(".*[[:punct:]]", "", dates)

[1] "08" "2008" "08" "2008" "2008" "2008" "08"
> substring(dates,regexpr("[0-9]*$", dates))
[1] "08" "2008" "08" "2008" "2008" "2008" "08"

(grep() won't do. It only tells you _whether_ the pattern matches.)

-- 
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard_at_biostat.ku.dk)              FAX: (+45) 35327907

______________________________________________
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.
Received on Fri 28 Nov 2008 - 10:55:30 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 28 Nov 2008 - 13:30:28 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive