Here is a working example with R 1.8.0, followed by the test files, and finally the R 1.8.1 error messages.
**** [1] R 1.8.0 WORKING EXAMPLE R R : Copyright 2003, The R Development Core Team Version 1.8.0 (2003-10-08) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R. > stt <- data.frame() > stt[1]<-as.matrix(read.table("a")) > stt[2]<-as.matrix(read.table("b")) > stt[3]<-as.matrix(read.table("c")) > stt[1] [1] V1 <0 rows> (or 0-length row.names) > stt[,1] V1 V2 V3 1 1 2 3 2 4 5 6 3 7 8 9 > stt[,2] V1 V2 V3 1 10 11 12 2 13 14 15 3 16 17 18 > stt[,3] V1 V2 V3 1 19 20 21 2 22 23 24 3 25 26 27 > **** [2] FILES :::::::::::::: a :::::::::::::: 1 2 3 4 5 6 7 8 9 :::::::::::::: b :::::::::::::: 10 11 12 13 14 15 16 17 18 :::::::::::::: c :::::::::::::: 19 20 21 22 23 24 25 26 27 **** [3] R 1.8.1 Error $ R R : Copyright 2003, The R Foundation for Statistical Computing Version 1.8.1 (2003-11-21), ISBN 3-900051-00-3 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R. [Previously saved workspace restored] > stt <- data.frame() > stt[1]<-as.matrix(read.table("a")) Error in "[<-.data.frame"(`*tmp*`, 1, value = as.matrix(read.table("a"))) : replacement has 3 rows, data has 0 [EMAIL PROTECTED]:/x/t_16 $ R R : Copyright 2003, The R Foundation for Statistical Computing Version 1.8.1 (2003-11-21), ISBN 3-900051-00-3 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R. [Previously saved workspace restored] > stt <- data.frame() > stt[1]<-as.matrix(read.table("a")) Error in "[<-.data.frame"(`*tmp*`, 1, value = as.matrix(read.table("a"))) : replacement has 3 rows, data has 0 On Sat, 22 Nov 2003, Prof Brian Ripley wrote: > Date: Sat, 22 Nov 2003 18:41:55 +0000 (GMT) > From: Prof Brian Ripley <[EMAIL PROTECTED]> > To: Al Piszcz <[EMAIL PROTECTED]> > Cc: [EMAIL PROTECTED] > Subject: Re: [R] 1.8.1 behavior change? > > On Sat, 22 Nov 2003, Al Piszcz wrote: > > > In <R 1.8.1 the following fragment worked properly, now (1.8.1) > > I take it you mean R < 1.8.1? In trying to reproduce something > like this > > stt <- data.frame() > stt[1] <- as.matrix(data.frame(foo=1:10, bar=letters[1:10])) > > in 1.8.0 I got > > > stt > [1] V1 > <0 rows> (or 0-length row.names) > > so is that what `worked properly' means? (It is also what S+6.1 does, but > I am pretty sure it is not what anyone wanted. Note the number of > columns is wrong, too.) > > In 1.7.1 it gave a similar error to 1.8.1. > > So as far as I can see (given you did not supply a test example) 1.8.1 is > just more helpful by pointing out your user error. The rule is that the > existing columns should be replicated an exact number of times when > extending a data frame: and that includes the row names so applies even if > there are no other columns. > > I hope each of your input files except the last have just one column (in > which case your code is very clunky) as otherwise you are asking for > columns to be overwritten. I would advise you to use cbind for this, > or dimension the data frame correctly in the first place and replace > sections at a time. > > > it creates the following warning/error: > > > > Any advice appreciated. > > Supply reproducible examples, as the FAQ asks. I have no idea why you > have given the same code twice here, BTW, so I remove the first copy. > > > > > stt <- data.frame() > > > # load all datasets into a dataframe > > > for (ds in 1:n) { > > + stt[ds] <- as.matrix(read.table(fileList[ds])) > > + } > > Error in "[<-.data.frame"(`*tmp*`, ds, value = > > as.matrix(read.table(fileList[ds]))) : > > replacement has 358 rows, data has 0 > > -- > 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://www.stat.math.ethz.ch/mailman/listinfo/r-help