将多个.csv文件导入R并添加文件名为

时间:2016-12-06 23:44:35

标签: r csv

我有80个单独的.csv文件,这些文件具有相同的列和标题,我可以使用以下命令将其作为一个数据框导入和rbind:

 file_names <- dir("~/Desktop/data") 
 df <- do.call(rbind,lapply(file_names,read.csv))

但我想添加一个新变量(“name”),用于标识每个观察来自哪个.csv文件。因此,例如,对于来自'NY.csv'文件的所有观察结果,此变量“name”将为“NY”,对于来自'DC.csv'文件的所有观察结果,此变量将为“DC”等... 有没有办法在不在每个.csv上手动添加这个新列的情况下执行此操作?谢谢!

1 个答案:

答案 0 :(得分:2)

这应该这样做:

file_names <- dir("~/Desktop/data") 
df <- do.call(rbind, lapply(file_names, function(x) cbind(read.csv(x), name=strsplit(x,'\\.')[[1]][1])))