Вопрос по dataframe, r – Объединение нескольких CSV-файлов в R

1

У меня есть около 100 CSV-файлов с общими заголовками, которые я хочу объединить. Заголовками являются "Lat", "Long" и "значение". Я пытаюсь объединить все файлы CSV, так что вывод будет

"Lat" "Lon" "Value1" "Value2"..."Value 100" 

Lat а такжеLon столбцы идентичны для всех файлов CSV. Объединить два файла легко

merge(data.frame1, data.frame2, by=c('Lat','Lon'))

Тем не менее, я попробовал следующий код, который не работал:

file_list <- list.files(~/source)   
list_of_files <- lapply(file_list, read.csv)  
m1 <- merge_all(list_of_files, by=c("Lat","Lon"), all=TRUE)  

который выдает ошибку

Error in merge.data.frame(dfs[[1]], Recall(dfs[-1]), all = TRUE, sort = FALSE,  : 
  formal argument "all" matched by multiple actual arguments.  

Может ли кто-нибудь помочь мне в этом отношении.

merge_all поставляется с изменением формы пакета, и да, извините за синтаксис ... но в программе я использовал правильный. Navin
list.files(~/source) это синтаксическая ошибкаmerge_all не поставляется с обычной установкой R; пожалуйста, сообщите нам, где это. Joshua Ulrich

Ваш Ответ

2   ответа
1

но вы не предоставили нам никаких данных для работы. Я лично использую способ dbaupp и не уверен, какой из них быстрее; тем не менее, я редко получаю большие данные, поэтому мне намного проще работать с методом Reduce, и я работаю таким образом (я выпускаю новый R-пакет через несколько месяцев, который имеет функцию мультимерджинга, в основном основывается на том же мышлении, что и ответ dbaupp). Если вы имеете дело с большими данными, возможно, вы захотите сравнить их с двумя (PS Я украл это откуда-то, потому что я редко зацикливаюсь на решении проблем, но не могу указать где).

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
Error: User Rate Limit Exceeded Navin
4

Reduce и равнинаmerge:

m1 <- Reduce(function(old, new) { merge(old, new, by=c('Lat','Lon')) }, list_of_files)
Error: User Rate Limit Exceeded,all=TRUE.

Похожие вопросы