【问题标题】:Importing multiple .csv files into R based on a list基于列表将多个 .csv 文件导入 R
【发布时间】:2016-06-23 03:38:42
【问题描述】:

我的数据:我有几百个受试者的纵向数据,程序以 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

【问题讨论】:

  • 请注意,lspattern 参数不是通配符表达式,而是正则表达式。你想要的是ls(pattern="\\.100\\.csv$"

标签: r list csv plyr lapply


【解决方案1】:

是的,您可以将所有代码放入另一个 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)
    })

【讨论】:

  • 非常感谢!我认为它会是 lapply,但不能完全放在一起......尤其是文件的命名。
猜你喜欢
  • 2018-07-06
  • 2018-11-22
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2014-07-20
相关资源
最近更新 更多