从文件夹中存在的多个 .csv 文件中导入 R 中的选定 .csv 文件
Importing selected .csv files in R out of multiple .csv files present in a folder
我在一个文件夹中有多个 .csv 文件,命名为 Pt4_1、Pt4_2、Pt5_1、Pt5_2...等等。 R中有没有办法导入选定的文件。据我所知(绝对非常有限)似乎有一种导入 .csv 文件的方法,例如:
read.table("Pt4_1.csv", header = TRUE, sep = ",")
但是,这似乎对我没有任何帮助,因为我必须导入多个 .csv 文件,结果多次编写上述语法(乏味)。
任何人都可以提出一种方法,以便我能够编写一个循环并相应地调用多个 .csv 文件吗?提前致谢!!
如果文件在工作目录中并且它们具有明确的模式,例如,下面的代码将 select 以 (^
) 开头且后跟 Pt
的文件数字 (\d+
)、下划线 (_
)、数字 (\d+
) 和 .csv
。使用 lapply
和 read.csv
.
读取 "list" 中的文件
files <- list.files(pattern='^Pt\d+_\d+.csv')
lst <- lapply(files, read.csv,header=TRUE)
如果文件很大,另一个选择是使用 data.table
中的 fread
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"
我在一个文件夹中有多个 .csv 文件,命名为 Pt4_1、Pt4_2、Pt5_1、Pt5_2...等等。 R中有没有办法导入选定的文件。据我所知(绝对非常有限)似乎有一种导入 .csv 文件的方法,例如:
read.table("Pt4_1.csv", header = TRUE, sep = ",")
但是,这似乎对我没有任何帮助,因为我必须导入多个 .csv 文件,结果多次编写上述语法(乏味)。
任何人都可以提出一种方法,以便我能够编写一个循环并相应地调用多个 .csv 文件吗?提前致谢!!
如果文件在工作目录中并且它们具有明确的模式,例如,下面的代码将 select 以 (^
) 开头且后跟 Pt
的文件数字 (\d+
)、下划线 (_
)、数字 (\d+
) 和 .csv
。使用 lapply
和 read.csv
.
files <- list.files(pattern='^Pt\d+_\d+.csv')
lst <- lapply(files, read.csv,header=TRUE)
如果文件很大,另一个选择是使用 data.table
fread
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"