From ripley at stats.ox.ac.uk  Mon Jul 26 19:23:01 2004
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Mon Jul 26 19:23:10 2004
Subject: [Rd] RE: [R] Strange (non-deterministic) problem with strsplit
In-Reply-To: <004501c46b90$efe19ea0$0701a8c0@hblaptop>
Message-ID: <Pine.LNX.4.44.0407261820130.13871-100000@gannet.stats>

Yes, that is a bug that I found a while back and now we have a replacement
for the CVS archive is in 1.9.1 patched.  However, it is in
gsub(perl=TRUE) only, and Hadley was not using anything like that.

On Sat, 17 Jul 2004, Henrik Bengtsson wrote:

> [Moving this thread to R-devel instead]
> 
> I suspect your "random" results are due to a bug in gsub(). On my R v1.9.0
> (Rterm and Rgui) R crashes when I do
> 
> % R --vanilla
> > gsub(" ", "", "abb + c | a*b", perl=TRUE)
> 
> Trying 
> 
> > gsub(" ", "", "b c + d | a * b", perl=TRUE)
> 
> and I'll get NULL. With 
> 
> > gsub("\\s", "", "bc + d | a * b", perl=TRUE)
> 
> it works as expected. So there is something buggy for sure.
> 
> This might have been fixed in R v1.9.1 or its patched version. (I'm still
> busy to recover from a HDD crash, but, yes, I will update to Rv1.9.1. BTW,
> what's the name of the error logger for Windows that is once in a while
> recommended on this list and that gives more detailed errors than the
> default Windows one?)

Dr. Mingw.  See the rw-FAQ Q7.4.  (FAQs are always worth consulting.)

> Cheers
> 
> Henrik
> 
> > -----Original Message-----
> > From: r-help-bounces@stat.math.ethz.ch 
> > [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of hadley wickham
> > Sent: Friday, July 16, 2004 10:50 PM
> > To: r-help@stat.math.ethz.ch
> > Subject: [R] Strange (non-deterministic) problem with strsplit
> > 
> > 
> > I'm having an odd problem with strsplit (well I think it's 
> > strplit that's causing the problem).  When I run the code 
> > below as follows:  str(parseFormulaMin(y +x +d ~ b +d +e| a * b))
> > 
> > I expect to get
> > List of 3
> >  $ y: chr "y+x+d"
> >  $ x: chr "b+d+e"
> >  $ g: chr "a*b"
> > 
> > But about half the time I get 
> > 
> > List of 3
> >  $ y: chr "y+x+d"
> >  $ x: chr "b+d+e"
> >  $ g: chr "a*[square box]"
> > (square box not reproduced here because copy and pasting it 
> > seems to break my web mail)
> > 
> > Can anyone reproduce the problem and/or suggest any solutions? 
> > 
> > parseFormula <- function(formula) {
> > 	splitvars <- function(x) {
> > 		strsplit(x, "\\+|\\*")[[1]]
> > 	}
> > 	stripwhitespace <- function(x) {
> > 		gsub("\\s", "", x, perl=T)
> > 	}
> > 	
> > 	vars <- stripwhitespace(as.character(formula)[3])
> > 	varsplit <- strsplit(vars, "|", fixed=TRUE)[[1]]
> > 
> > 	parts <- list(
> > 		y = stripwhitespace(as.character(formula)[2]),
> > 		x = varsplit[1],
> > 		g = varsplit[2]
> > 	)
> > 	lapply(parts, splitvars)
> > } 
> > 
> > Thanks,
> > 
> > Hadley
> > 
> > ______________________________________________
> > R-help@stat.math.ethz.ch mailing list 
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> > http://www.R-project.org/posting-guide.html
> > 
> >
> 
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
> 

-- 
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 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] RE: [R] Strange (non-deterministic) problem with strsplit
Prof Brian Ripley