[R] how to read in multiple files with unequal number of columns

John Kane jrkrideau at yahoo.ca
Tue Apr 22 20:29:08 CEST 2008


You might want to have a look at the merge_all
function in the reshape package. 
--- Tania Oh <tania.oh at bnc.ox.ac.uk> wrote:

> Dear all,
> 
> I want to read in 1000 files which contain varying
> number of columns.
> For example:
> 
> file[1] contains 8 columns (mixture of characters
> and numbers)
> file[2] contains 16 columns etc
> 
> I'm reading everything into one big data frame and
> when I try rbind, R  
> returns an error of
> "Error in rbind(deparse.level, ...) :
>    numbers of columns of arguments do not match"
> 
> 
> Below is my code:
> 
> all <- NULL
> all <- as.data.frame(all)
> 
> ##read in the contents of the files
> for (f in 1:length(fnames)){
> 
>        tmp <- try(read.table(fnames[f], header=F,
> fill=T, sep="\t"),  
> TRUE)
> 
>        if (class(tmp) == "try-error") {
>                next ## skip this file if it's
> empty/non-existent
>         }else{
> 	       ## combine all the file contents into one
> big data frame
>                 all <- rbind(all, tmp)
>    }
> }
> 
> 
> Here is some example of what the data in the files:
> 
> L3 <- LETTERS[1:3]
> (d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3,
> 10, replace=TRUE)))
> 
>  > str(d)
> 'data.frame':	10 obs. of  3 variables:
>   $ x  : num  1 1 1 1 1 1 1 1 1 1
>   $ y  : num  1 2 3 4 5 6 7 8 9 10
>   $ fac: Factor w/ 3 levels "A","B","C": 1 3 1 2 2 2
> 2 1 1 2
> 
> my.fake.data <- data.frame(cbind(x=1, y=2))
>  > str(my.fake.data)
> 'data.frame':	1 obs. of  2 variables:
>   $ x: num 1
>   $ y: num 2
> 
> 
> all <- rbind(d, my.fake.data)
> 
> Error in rbind(deparse.level, ...) :
>    numbers of columns of arguments do not match
> 
> 
> I've searched the R-site but couldn't find any
> relevant solution.I  
> might have used the wrong keywords to search, so if
> this question has  
> been answered already, I'd be very grateful if
> someone could point me  
> to the post. Else any help/suggestions would be
> greatly appreciated.
> 
> Many thanks in advance,
> tania
> 
> D.Phil student
> Department of Physiology, Anatomy and Genetics
> University of Oxford
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained,
> reproducible code.
>



More information about the R-help mailing list