我有一個包含332個csv文件的文件夾。文件的名稱如下001.csv,002.csv,003.csv,............,330.csv,331.csv,332.csv。所有文件具有相同數量的變量和相同的格式。將多個csv文件從一個文件夾讀取到R中的單個數據幀中
我需要讀取一個數據幀中的所有文件。我一直在閱讀每一個,然後使用rbind,但這太麻煩了。
需要幫助。
我有一個包含332個csv文件的文件夾。文件的名稱如下001.csv,002.csv,003.csv,............,330.csv,331.csv,332.csv。所有文件具有相同數量的變量和相同的格式。將多個csv文件從一個文件夾讀取到R中的單個數據幀中
我需要讀取一個數據幀中的所有文件。我一直在閱讀每一個,然後使用rbind,但這太麻煩了。
需要幫助。
嘗試lapply和do.call
file_names <- dir() #where you have your files
your_data_frame <- do.call(rbind,lapply(file_names,read.csv))
這裏是一個可能的解決方案。可能也可以用一個應用函數來完成。
path <- "path_to_files"
files <- c(paste("00",2:9,".csv",sep=""),
paste("0",10:99,".csv",sep=""),
paste(100:332,".csv",sep="")
)
#Read first file to create variables in a data frame
data <- read.csv(paste(path,"001.csv",sep="/"))
#Read remaining files and rbind them to dataset
for (f in files) {
data <- rbind(data,read.csv(paste(path, files, sep="/")))
}
謝謝大家的直接幫助。 header = TRUE的以下命令適用於我。文件名稱< - dir()#你有你的文件 your_data_frame < - do.call(rbind,lapply(file_names,read.csv,header = TRUE)) – Madhumita
解決方案與data.table
,答案取自SO有時回來的另一篇文章。
library(data.table)
files <- list.files(path = "/etc/dump",pattern = ".csv")
temp <- lapply(files, fread, sep=",")
data <- rbindlist(temp)
這很好。 – AidanGawronski
雖然重複會給你怎樣做一個好主意,這個確切的問題已經在之前其他問題[像這樣的(貼http://stackoverflow.com/questions/23951541/importing-多的CSV文件到-R按名稱-的文件/ 23952165#23952165)。 – Jaap