简体   繁体   English

在保留名称的同时在R中导入多个csv文件

[英]Import multiple csv files in R while retaining their names

How do I import multiple csv files, all in one folder, while retaining their names. 如何在一个文件夹中同时导入多个csv文件,同时保留其名称。 For example, if the file a.csv should be imported as "a", b.csv should be imported as "b", etc. 例如,如果将文件a.csv导入为“ a”,则将b.csv导入为“ b”,依此类推。

Edit: Just to to be specific... I do NOT want to type out the names of the files individually, because there's a whole bunch of them. 编辑:只是要具体...我不想单独键入文件的名称,因为有一堆文件。 I want to have a system which simple reads in all the files from a directory and retains the original file names. 我想要一个简单地从目录中读取所有文件并保留原始文件名的系统。

Yadda yadda use a list yadda Yadda yadda使用列表yadda

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

dfs <- setNames(lapply(filenames, function(f)
    read.csv(paste0(f, "csv")), filenames))

use assign . 使用assign A simple iteration is as follows: 一个简单的迭代如下:

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

lapply(basenames, function(x) 
  assign(x, read.csv(paste0(x, ".csv")), envir=.GlobalEnv)
  )

This is how I do it, like Hong Ooi, with a list... 我就是这样做的,就像洪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

Another approach using plyr function: 使用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)
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM