所以我在R上很新,现在我正在尝试加载多个.csv文件(~60左右),然后将它们合并在一起.它们都有类似的列,它们的文件命名如下:dem_file_30,dem_file_31.
我一直在尝试在线使用脚本但是仍然遇到一些错误.我相信我可以手工完成,但那真的很乏味.
例:
file_list <- list.files("/home/sjclark/demographics/")
list_of_files <- lapply(file_list, read.csv)
m1 <- merge_all(list_of_files, all=TRUE)
Error: merge_all doesn't exist
Run Code Online (Sandbox Code Playgroud)
这个似乎把它们读成了R,但后来我不知道怎么办......帮忙?
setwd("/home/sjclark/demographics/")
filenames <- list.files(full.names=TRUE)
All <- lapply(filenames,function(i){
read.csv(i, header=TRUE)
})
Run Code Online (Sandbox Code Playgroud)
看起来好像你可能正在尝试使用R-bloggers上共享的nice函数(归功于Tony Cookson):
multMerge = function(mypath){
filenames = list.files(path = mypath, full.names = TRUE)
datalist = lapply(filenames,
function(x){read.csv(file = x,
header = TRUE,
stringsAsFactors = FALSE)})
Reduce(function(x,y) {merge(x, y, all = TRUE)}, datalist)
}
Run Code Online (Sandbox Code Playgroud)
或者也许你已经从差异来源拼凑了一些东西?在任何情况下,merge
您都缺少重要的基础R功能.merge_all
在任何包中都不存在.
由于您是R(也许是所有编程人员)的新手,因此值得注意的是,在使用它之前,您需要定义此函数.完成后,您可以像任何其他功能一样调用它:
my_data <- multMerge("/home/sjclark/demographics/")
Run Code Online (Sandbox Code Playgroud)