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

Kurt Hornik Kurt.Hornik@ci.tuwien.ac.at
Sat, 8 Sep 2001 08:28:21 +0200


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