From Kurt.Hornik@ci.tuwien.ac.at  Sat Sep  8 07:28:21 2001
From: Kurt.Hornik@ci.tuwien.ac.at (Kurt Hornik)
Date: Sat, 8 Sep 2001 08:28:21 +0200
Subject: [Rd] Re: [R] Why does substr<- truncate and not replace...
In-Reply-To: <x24rqeu0et.fsf@blueberry.kubism.ku.dk>
References: <px66au3h1v.fsf@infiniti.ece.cmu.edu>
 <x24rqeu0et.fsf@blueberry.kubism.ku.dk>
Message-ID: <15257.47749.215502.258140@mithrandir.hornik.net>

>>>>> 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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] Re: [R] Why does substr<- truncate and not replace...
Kurt Hornik