I have around 100 csv files with common headers, which i want to merge. The headers are \"Lat\", \"Long\" and \"value\". I am trying to merge all the csv files such that the out
This may work as well but you haven't given us any data to work with. I personally use dbaupp's way and am not sure which one is faster; however, I rarely get into big data so the Reduce method is just so much easier for me to work with that's the way I go (I'm releasing a new R package in a few months that has a function to do multimerge that's basically based on the same thinking as dbaupp's response). If you're dealing with big data you may want to bench mark the two (PS I stole this from somewhere as I rarely think in loops to solve problems but can't cite where).
DF <- list_of_files[[1]][, c('lat', 'Lon')]
for (.df in list_of_files) {
DF <-merge(DF,.df,by=c('Lat', 'Lon'), all=T, suffixes=c("", ""))
}
DF
You can use Reduce and the plain merge
:
m1 <- Reduce(function(old, new) { merge(old, new, by=c('Lat','Lon')) }, list_of_files)