Below is suggested code for adding a "tail" argument to the
"substring" function.

Getting the end of a string is a fairly common operation in
finance where the exchange of an asset is often encoded.

This is a new implementation,  but I don't think there are any
tricky bits I haven't thought of.

function (text, first, last = 1e+06, tail=NULL)
{
   storage.mode(text) <- "character"
   if(length(tail)) {
       if(!missing(first))
               stop("only one of first and tail allowed")
       nc <- nchar(text)
       first <- nc - tail + 1
   }
   n <- max(lt <- length(text), length(first), length(last))
   if (lt && lt < n)
       text <- rep(text, length.out = n)
   substr(text, first, last)
}
<environment: namespace:base>

As implemented here "tail" gives the distance from the original end of the
strings, not the number of characters in the answer (when "last" is given).


Patrick Burns

Burns Statistics
[EMAIL PROTECTED]
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

Reply via email to