我想设计一个功能.假设我有文件file1.csv,file2.csv,file3.csv,...,file100.csv.每次通过指定整数向量id调用函数时,我只想读取其中的一些,例如,id = 1:10,然后我将读取file1.csv,...,file10.csv.
在阅读了那些csv文件后,我想将它们组合成一个变量.所有csv文件都具有相同的列结构.
我的代码如下:
namelist <- list.files()
for (i in id) {
assign(paste0( "file", i ), read.csv(namelist[i], header=T))
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在我读完所有数据矩阵之后,我坚持将它们组合在一起,因为它们都有不同的变量名称.
您应该将每个文件作为列表的元素读入.然后你可以将它们组合如下:
namelist <- list.files()
df <- vector("list", length = length(id))
for (i in id) {
df[[i]] <- read.csv(namelist[i], header = TRUE)
}
df <- do.call("rbind", df)
Run Code Online (Sandbox Code Playgroud)
或者更简洁:
df <- do.call(rbind, lapply(list.files(), read.csv))
Run Code Online (Sandbox Code Playgroud)