2016-03-08 162 views
0

我的数据:我有几百个主题的纵向数据,程序以week.subjectID.csv的格式吐出数据文件。例如,1.100.csv是第100周的第1周的文件。根据列表将多个.csv文件导入到R中

我的问题:在最后使用该帖子时,我想出了如何读取多个文件并将它们组合在一起(代码如下)。

library(plyr) 
#Create list of all weekly files for subject ID 100 
files = list.files(pattern="*.100.csv") 
#List of data frames 
subject = lapply(files, read.delim) 
#Throw them altogether 
exporty = ldply(subject, data.frame) 
#Export new file 
write.csv(exporty, "100") 

但是,当我不得不为所有主题重复该命令时,这个过程非常缓慢。是否有办法创建我的主题列表,并且一次一个主题,读取其文件,合并它们,导出其组合数据集,然后转到下一个主题上?

资源:Importing multiple .csv files into R

+0

注意'pattern'参数'ls'是_not_通配符表达式,而是一个正则表达式。你想要的是'ls(pattern =“\\。100 \\。csv $”'。 –

回答

2

是你可以把你的所有代码到另一个lapply()

library(plyr) 

subjects <- c("100", "200", "300") 
lapply(subjects, FUN=function(eachsubject){ 
    files = list.files(pattern=paste0("*.", eachsubject, ".csv")) 
    subject = lapply(files, read.delim) 
    exporty = ldply(subject, data.frame) 
    write.csv(exporty, eachsubject) 
    }) 
+0

非常感谢你!我认为这会很乐观,但不能把它放在一起......尤其是命名的文件。 – erebusgw