[R] how to read in multiple files with unequal number of columns
Tania Oh
tania.oh at bnc.ox.ac.uk
Tue Apr 22 15:05:01 CEST 2008
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
More information about the R-help
mailing list