在R中导入文件夹中存在的多个.csv文件中的选定.csv文件

时间:2015-01-06 07:26:36

标签: r csv

我在文件夹中有多个.csv文件,名为Pt4_1,Pt4_2,Pt5_1,Pt5_2 ....等等。 R中是否有导入所选文件的方法。据我所知(绝对非常有限),似乎有一种导入.csv文件的方法,例如:

read.table(“Pt4_1.csv”,header = TRUE,sep =“,”)

然而,这对我来说似乎没有任何帮助,因为我必须导入多个.csv文件,因此多次编写上述语法(繁琐)。

任何人都可以建议一种方式,这样我就可以写一个循环并相应地调用多个.csv文件吗?提前谢谢!!

1 个答案:

答案 0 :(得分:4)

如果文件位于工作目录中并且它们具有明确的模式,例如,以下代码将选择以^开头(Pt)后跟数字\\d+的文件}),下划线(_),数字(\\d+)和.csv。阅读"列表中的文件"使用lapplyread.csv

 files <- list.files(pattern='^Pt\\d+_\\d+.csv')
 lst <- lapply(files, read.csv,header=TRUE)

如果文件非常大,则另一个选项是使用fread中的data.table

 library(data.table)
 lst1 <- lapply(files, fread)

更新

您可以创建一个函数来创建模式。

 filePat <- function(d1, d2){
      sprintf('Pt%d_%d.csv', d1, d2)
     }

filePat(2,3)
#[1] "Pt2_3.csv"