我在文件夹中有多个.csv文件,名为Pt4_1,Pt4_2,Pt5_1,Pt5_2 ....等等。 R中是否有导入所选文件的方法。据我所知(绝对非常有限),似乎有一种导入.csv文件的方法,例如:
read.table(“Pt4_1.csv”,header = TRUE,sep =“,”)
然而,这对我来说似乎没有任何帮助,因为我必须导入多个.csv文件,因此多次编写上述语法(繁琐)。
任何人都可以建议一种方式,这样我就可以写一个循环并相应地调用多个.csv文件吗?提前谢谢!!
答案 0 :(得分:4)
如果文件位于工作目录中并且它们具有明确的模式,例如,以下代码将选择以^
开头(Pt
)后跟数字\\d+
的文件}),下划线(_
),数字(\\d+
)和.csv
。阅读"列表中的文件"使用lapply
和read.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"