我试图merge几个data.frames成一个data.frame。由于我有完整的文件列表,因此我尝试使用循环结构来实现。
到目前为止,循环方法可以正常工作。但是,它看起来效率很低,我想知道是否有更快,更轻松的方法。
这是场景:我有一个包含多个.csv文件的目录。每个文件包含相同的标识符,可用作合并变量。由于文件很大,我想一次将每个文件读入R中,而不是一次读取所有文件。因此,我获得了目录的所有文件,list.files并读取了前两个文件。之后我用merge一个data.frame。
FileNames <- list.files(path=".../tempDataFolder/")
FirstFile <- read.csv(file=paste(".../tempDataFolder/", FileNames[1], sep=""),
header=T, na.strings="NULL")
SecondFile <- read.csv(file=paste(".../tempDataFolder/", FileNames[2], sep=""),
header=T, na.strings="NULL")
dataMerge <- merge(FirstFile, SecondFile, by=c("COUNTRYNAME", "COUNTRYCODE", "Year"),
all=T)
现在,我使用for循环将所有剩余的.csv文件和merge它们放入已经存在的文件中data.frame:
for(i in 3:length(FileNames)){
ReadInMerge <- read.csv(file=paste(".../tempDataFolder/", FileNames[i], sep=""),
header=T, na.strings="NULL")
dataMerge <- merge(dataMerge, ReadInMerge, by=c("COUNTRYNAME", "COUNTRYCODE", "Year"),
all=T)
}
即使一切正常,我想知道是否还有更优雅的方法来完成工作?
慕村225694