2

如何在一个文件夹中导入多个 csv 文件,同时保留它们的名称。例如,如果文件 a.csv 应导入为“a”,则 b.csv 应导入为“b”等。

编辑:具体来说......我不想单独输入文件的名称,因为它们有很多。我想要一个系统,它可以简单地从目录中读取所有文件并保留原始文件名。

4

4 回答 4

2

yadda yadda 使用列表 yadda

filenames <- c("a", "b", "c")

dfs <- setNames(lapply(filenames, function(f)
    read.csv(paste0(f, "csv")), filenames))
于 2013-07-12T07:25:47.310 回答
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
于 2013-07-12T07:29:23.663 回答
1

使用assign. 一个简单的迭代如下:

basenames <- c("a", "b" , "c")

lapply(basenames, function(x) 
  assign(x, read.csv(paste0(x, ".csv")), envir=.GlobalEnv)
  )
于 2013-07-12T07:20:02.973 回答
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)
})
于 2013-07-12T07:31:43.993 回答