Re: [Rd] random output with sub(fixed = TRUE)

From: Peter Dalgaard <p.dalgaard_at_biostat.ku.dk>
Date: Wed 21 Dec 2005 - 21:59:24 GMT

"Roger D. Peng" <rpeng@jhsph.edu> writes:

> I've noticed what I think is curious behavior in using 'sub(fixed = TRUE)' and
> was wondering if my expectation is incorrect. Here is one example:
>
> v <- paste(0:10, "asdf", sep = ".")
> sub(".asdf", "", v, fixed = TRUE)
>
> The results I get are
>
> > sub(".asdf", "", v, fixed = TRUE)
> [1] "0" "1\0st\0\0" "2\0<af>\001\0\0" "3\0<af>\001\0\0"
> [5] "4\0mes\0" "5\0<ba>\001\0\0" "6\0\0\0\0\0" "7\0\0\0m\0"
> [9] "8\0\0\0t\0" "9\0<fe>\0\0\0" "10\0\0\0\0\0"
> >
>
> I expected "0" in the first entry and everything else would be unchanged. Your
> results may vary since every time I run 'sub()' in this way, I get a slightly
> different answer in entires 2 through 11.
>
> As it turns out, 'gsub(fixed = TRUE)' gives me the answer I *actually* wanted,
> which was to replace the string in every entry. But I still think the behavior
> of 'sub(fixed = TRUE) is a bit odd.
>
> > version
> _
> platform x86_64-unknown-linux-gnu
> arch x86_64
> os linux-gnu
> system x86_64, linux-gnu
> status
> major 2
> minor 2.1
> year 2005
> month 12
> day 20
> svn rev 36812
> language R
> >

Argh...

year 2005
month 12
day 21

and something like this gets discovered. It's a ritual, I tell ya, a ritual!

If you look at the output and terminate all strings at the embedded \0, it looks much more sensible, so it should be fairly easy to spot the cause of this bug...

-- 
   O__  ---- Peter Dalgaard             ุster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Thu Dec 22 09:04:21 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:35 GMT