【问题标题】:Loop read.csv files containing pattern in file name循环读取文件名中包含模式的 read.csv 文件
【发布时间】:2017-01-28 19:16:30
【问题描述】:

我创建了一个30个单词的向量,叫做“club”

club <- pixid$ack1

接下来我要导入 30 个 csv 文件。每个文件名包含“club”中的1个单词。

for (i in club){
DCM.[i] <- read.csv(list.files(pattern = "[i]"))
}

但是我收到以下错误:

文件中的错误(文件,“rt”):无效的“描述”参数。

如何从向量中读取所有这些包含名称的文件?我希望这只是一个语法错误。

【问题讨论】:

  • 你不需要[] 也许这有助于DCM &lt;- vector("list", length(club)); for(i in seq_along(club)){DCM[[i]] &lt;- read.csv(list.files(pattern = club[i]))} 假设clubcharacter
  • 是的,“俱乐部”是一个角色。不幸的是,这仍然给我:'文件中的错误(文件,“rt”):无效的'描述'参数'错误。
  • 您可能需要提供一个可重现的小例子。
  • 示例:club &lt;- c("ARI","ATL") 文件名:34562_Conversions_ARI_YTD_20170128_060408_521702287.csv6482_Conversions_BAL_YTD_20170128_060612_521699121.csv
  • 当你做sapply(clubs, function(x) list.files(pattern=x))时你会得到什么

标签: r loops read.csv


【解决方案1】:

“俱乐部”vector 中的单个pattern 可能有多个文件。我们遍历模式的“俱乐部”,使用list.files 列出基于该模式的文件,然后遍历文件名,并使用read.csv 读取它

DCM <- lapply(club, function(x) lapply(list.files(pattern = x), 
               function(x) read.csv(x, stringsAsFactors=FALSE, row.names = NULL)))

上面是一个嵌套的list,其中包含一个listdata.frames,用于“俱乐部”提供的每个模式。

【讨论】:

  • 成功了!!感谢您为此工作.. 为我节省了很多时间。我应该花时间学习应用函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 2013-04-26
  • 1970-01-01
相关资源
最近更新 更多