如何在保留名称的同时在一个文件夹中导入多个csv文件。例如,如果文件a.csv应导入为“a”,则b.csv应导入为“b”等。
编辑:只是为了具体...我不想单独输入文件的名称,因为它们中有很多。我希望有一个系统,它可以简单地读取目录中的所有文件,并保留原始文件名。
答案 0 :(得分:2)
Yadda yadda使用列表yadda
filenames <- c("a", "b", "c")
dfs <- setNames(lapply(filenames, function(f)
read.csv(paste0(f, "csv")), filenames)
答案 1 :(得分:1)
使用assign
。一个简单的迭代如下:
basenames <- c("a", "b" , "c")
lapply(basenames, function(x)
assign(x, read.csv(paste0(x, ".csv")), envir=.GlobalEnv)
)
答案 2 :(得分:1)
我就是这样做的,就像Hong Ooi一样,列表......
# assuming your working directory is the folder with the CSVs
myfiles <- dir(pattern = "\\.(csv|CSV)$", full.names = TRUE) # get filenames and paths
myfiles_data <- lapply(myfiles, data.table::fread) # read data from files, quickly
head(myfiles_data[[1]]) # validate file reading
names(myfiles_data) <- myfiles # assign names to list items
答案 3 :(得分:1)
使用plyr函数的另一种方法:
library(plyr)
mydata = ldply(list.files(pattern = “csv”), function(filename) {
dum = read.table(filename)
#If you want to add the filename as well on the column
dum$filename = filename
return(dum)
})