Sub uses POSIX-extended regular expressions. It searches for the first argument, the pattern, and replaces it with the second argument in the variable defined by the third argument. [[:digit:]] is a match-any-digit operator; it matches the characters 0-9. The {#} is the interval operator, where what's inside the bracket's is a count. So [[:digit:]]{4} means match 4 digits. All together, ([[:digit:]] {4})-([[:digit:]]{2})-([[:digit:]]{2}) means "Match 4 digits followed by a dash followed by 2 digits followed by a dash followed by 2 digits. By surrounding pieces of the search pattern in parentheses, we create back-references, which can be used in the replacement (second argument) like variables, \\1 to \\9, in the order that they appear in the pattern. When we replace the pattern with '\\1', that means return what is in the first set of parentheses, or the first four digits before a dash before two digits before a dash before another two digits.
Note: most of the time, we'd use single slashes to escape a character (i.e. \1), but R needs double slashes (i.e. \\1). If you're interested in regular expressions, this site is quite useful: http://www.cs.utah.edu/dept/old/texinfo/regex/regex_toc.html. Make sense? Jeff. On Sep 18, 2007, at 10:46 AM, Arun Kumar Saha wrote: > Dear Jeffrey, > > Your syntax looks very extraordinary to me. I would be very happy > if you can explain this notation. > > Regards, > > On 9/18/07, Jeffrey Robert Spies <[EMAIL PROTECTED]> wrote:And one > using regular expressions: > > x <- "2005-09-01" > pattern <- '([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})' > y <- sub(pattern, '\\1', x) > m <- sub(pattern, '\\2', x) > d <- sub(pattern, '\\3', x) > > -- Jeff. > > On Sep 18, 2007, at 5:00 AM, Arun Kumar Saha wrote: > > > Dear all, > > > > I have a variable 'x' like that: > > > >> x > > [1] "2005-09-01" > > > > Here, 2005 represents year, 09 month and 01 day. > > > > Now I want to create three variables naming: y, m, and d such that: > > > > y = 2005 > > m = 09 > > d = 01 > > > > can anyone tell me how to do that? > > > > Regards, > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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. > > > ______________________________________________ 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.