>From ?read.table (this is about read.table, despite the subject line, I believe?)
colClasses: character. A vector of classes to be assumed for the columns. "NULL" is not a class in my book (and certainly not one a column can have). So no wonder it does not work, and it is not a bug not to work in undocumented cases. We can look into making it work, but once you start skipping columns I think you should be using scan(). (I also suspect scan did not accept NULL when this was implemented.) On 8 Sep 2004, Peter Dalgaard wrote: > Consider this: > > $ cat test.dat > 1 a > 2 b > > Now, we want to read the 2nd column as a factor and ignore the first > (since it's just a sequential ID). Well, you have to have row names, so that's not actually an advantage. > We can't just put "factor" among > the colClasses (would have been nice), so let's try this instead > > > setAs("character","factor",as.factor) > Arguments in definition changed from (x) to (from) > > read.table("test.dat",colClasses=c("numeric","factor")) > Error in inherits(x, "factor") : Object "x" not found > > which is a bit peculiar: Why does it change the argument when that's > going to create a function that doesn't work?? You do need to spell it > out: > > > setAs("character","factor",function(from)as.factor(from)) > And now we get somewhere > > > read.table("test.dat",colClasses=c("numeric","factor")) > V1 V2 > 1 1 a > 2 2 b Might be a good idea to teach colClasses about "factor". > > but suppose we want to get rid of col.1: > > > read.table("test.dat",colClasses=c("NULL","factor")) > Error in data[[i]] : subscript out of bounds > > which looks like a pretty clear bug. In contrast, this works fine > > > read.table("test.dat",colClasses=c("NULL","character")) > V2 > 1 a > 2 b > > so the issue only arises when you have nontrivial coercions. > > Presumably, the issue is that the colClasses in those cases > miscalculate indices by forgetting the columns that were skipped. > > -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel