[R] read multiple large files into one dataframe
Paul Hiemstra
p.hiemstra at geo.uu.nl
Mon Jan 25 11:43:35 CET 2010
Brad Patrick Schneid wrote:
> ### The following is very helpful #########
> listOfFiles <- list.files(pattern= ".txt")
> d <- do.call(rbind, lapply(listOfFiles, read.table))
> ###############################
>
> but what if each file contains information corresponding to a different
> subject and I need to be able to tell where each row came from? i.e.: I
> need a new row
a new column I presume, not a row
> that repeats the original filename for each observation of
> the former respective files.
>
> Any ideas?
>
>
>
listOfFiles <- list.files(pattern= ".txt")
d <- do.call(rbind, lapply(listOfFiles, read.table))
you replace the read.table function by a custom function:
listOfFiles <- list.files(pattern= ".txt")
d <- do.call(rbind, lapply(listOfFiles, function(fname) {
dum = read.table(fname)
dum$which_file = fname
return(dum)
}))
Now d has an additional column identifying which filename it originally
belonged to.
cheers,
Paul
--
Drs. Paul Hiemstra
Department of Physical Geography
Faculty of Geosciences
University of Utrecht
Heidelberglaan 2
P.O. Box 80.115
3508 TC Utrecht
Phone: +3130 274 3113 Mon-Tue
Phone: +3130 253 5773 Wed-Fri
http://intamap.geo.uu.nl/~paul
More information about the R-help
mailing list