我想定期从目录导入100个csv文件,根据各个文件名为每个文件分配一个唯一ID,然后将文件附加到单个数据框。当新文件上传到目录时,我希望能够将新文件附加到数据帧 我有:
我找到了几个有效附加目录中所有文件的选项,但是我没有找到一种方法来附加与每个文件的文件名对应的唯一ID。
从我使用的目录导入和追加文件:
library(data.table)
setwd("C:/data")
Filelist <- list.files()
appenddata = rbindlist(lapply( filelist, fread, header=TRUE ))
要创建我使用的唯一ID:
Appenddata$id = substr(filelist, 1, 20)
答案 0 :(得分:3)
过去我只是将文件名rep()作为一个列并循环遍历csv文件,如下所示:
df <- data.frame()
for(file in files){
new_df <- read.csv(file)
new_df$id <- rep(file, nrow(new_df))
df <- rbind(df, new_df)
}
如果您需要更好的表现。您可能会将数据帧读取到列表中,通过lapply创建您的id文件,然后立即对它们进行rbinding。