基于列表将多个.csv文件导入R中

时间:2016-03-08 23:31:08

标签: r list csv plyr lapply

我的数据:我有几百个主题的纵向数据,程序以week.subjectID.csv的格式吐出数据文件。例如,1.100.csv是主题100的第1周的文件。

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

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

1 个答案:

答案 0 :(得分: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)
    })