我正在尝试将多个csv文件加载到R中,并将它们全部合并到一个大型数据框中。我正在阅读的文件的标题是数据的年份,例如BirthWeight1999.csv,BirthWeight2000.csv,BirthWeight2001.csv。我想要做的是为每个csv文件创建一个新列,以给出数据来源的年份。例如,该文件包含列,MotherWeight,Alcohol,BabyWeight,我想要包含一个名为Year的新列,它具有文件名中的值。因此,如果文件是BirthWeight1999,则Year列应该包含1999.我很难找到如何执行此操作。我有阅读的文件...
filenames = list.files(dir())
do.call("rbind", lapply(filenames, read.csv, header = TRUE)
感谢任何帮助。
谢谢:)
答案 0 :(得分:0)
如果我理解正确,你可以试试:
#examples of your filenames
filenames<-paste(sep="","BirthWeight",1999:2014,".csv")
#take the year
years<-as.numeric(substring(filenames,12,15))
#call read.csv to each filename and add the column year
do.call(rbind,mapply(function(x,y) {ret<-read.csv(x);ret$year<-y;ret},filenames,years,SIMPLIFY=FALSE))