From ripley@stats.ox.ac.uk  Sat Sep  8 10:43:50 2001
From: ripley@stats.ox.ac.uk (Prof Brian Ripley)
Date: Sat, 8 Sep 2001 10:43:50 +0100 (BST)
Subject: [Rd] Re: [R] Why does substr<- truncate and not replace...
In-Reply-To: <15257.47749.215502.258140@mithrandir.hornik.net>
Message-ID: <Pine.LNX.4.31.0109081041490.7260-100000@gannet.stats>

This is already fixed in R-devel:

> x
[1] "axcdef"

If start - stop is 1, the substring is of length 2 ...

On Sat, 8 Sep 2001, Kurt Hornik wrote:

> >>>>> Peter Dalgaard BSA writes:
>
> > Thomas Vogels <tov@ece.cmu.edu> writes:
> >> ... when the replacement string is shorter than the portion of the
> >> string to be replaced?
> >>
> >> The documentation to substr (in R 1.3.1) gives me:
> >>
> >> If the portion to be replaced is longer than the replacement
> >> string, then only the portion the length of the string is
> >> replaced.
> >>
> >> And so I try:
> >>
> R> x <- "abcdef"
> R> substr(x,2,3) <- "xy" #ok
> R> x
> >> [1] "axydef"
> R> substr(x,2,3) <- "w" #ko
> R> x
> >> [1] "aw"
> >>
> >> hmm, I would have expected "awdef".  Am I reading the docs wrong?  (Or
> >> am I just blinded to expect this string because that's what Perl would do?)
> >>
> >> Thanks!
> >> -tom
>
> > Looks like a bit of a bug. I bet the \0 terminator gets copied in from
> > the replacement.
>
> There are yet more interesting effects when using longer portions:
>
> R> x <- "abcdef"
> R> x
> [1] "abcdef"
> R> substr(x, 2, 4) <- "x"
> R> x
> [1] "ax"
>
> -k
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] Re: [R] Why does substr<- truncate and not replace...
Prof Brian Ripley