stringsAsFactors = FALSE
On Mon, 17 Nov 2008, Prof Brian Ripley wrote:
On Mon, 17 Nov 2008, hadley wickham wrote:
Hi all, I love the option to not automatically convert strings into factors, but there are three places that the current option doesn't work where I think it should:
Perhaps you mean 'when I would like it to'? Things *should* work as documented, surely?
options(stringsAsFactors = FALSE) str(expand.grid(letters)) str(type.convert(letters)) df <- read.fwf(textConnection(paste(letters,collapse="\n")), 1) str(df)
I get
str(df)
'data.frame': 26 obs. of 1 variable: $ V1: chr "a" "b" "c" "d" ... so what is wrong with that? read.fwf just calls read.table, so the default options of read.table apply.
I think type.convert and read.fwf can be fixed by giving them a stringsAsFactors argument and then using asis = !stringsAsFactors (like read.table).
Seems to me that there is nothing wrong with read.fwf. For type.convert() we could have the default as.is = !default.stringsAsFactors() but I think a strong case needs to be made to change the documented behaviour.
It seems only to be used in RODBC (where I have some extra control pending), simecol and BioC:beadarraySNP (both with as.is=TRUE) and reshape (author, one Hadley Wickham). Given it is documented as a help utilty, it seems up to the caller to set the behaviour he wants.
The key lines in expand.grid would seem to be
if (!is.factor(x) && is.character(x))
x <- factor(x, levels = unique(x))
but I'm not sure why they are being converted to factors in the first
place.
Nor I am, but it goes back to at least r2107, over 10 years ago. I don't see much problem with adding a 'stringsAsFactors' argument there. -- Brian D. Ripley, ripley at 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
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Brian D. Ripley, ripley at 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