如何在 R 中导入文件名中包含特定单词的 .csv 文件?

Posted

技术标签:

【中文标题】如何在 R 中导入文件名中包含特定单词的 .csv 文件?【英文标题】:How to import a .csv file with a specific words in the file name in R? 【发布时间】:2019-06-03 17:53:10 【问题描述】:

感谢您阅读这篇文章。我几乎每天都将 .csv 文件从 Qualtrics 平台导入到特定文件夹(即“Thesis_Folder”)。每当我将 .csv 文件导入 Thesis_Folder 时,.csv 文件的默认名称包括今天的日期和时间。换句话说,每次我从 Qualtrics 导入数据时,.csv 文件的名称都会发生变化(例如,“论文数据 June+3_2019++12:48”)。但是,.csv 文件始终包含“论文数据”字样。我的问题是:如果文件名中包含“论文数据”,我该如何导入 .csv 文件?

list.files() 列出具有特定模式的文件的名称,但它不会将它们作为数据框导入。谢谢。

【问题讨论】:

CSV 文件...read.csv? 【参考方案1】:
files <- list.files("C:/Users/User/Desktop/csv", pattern=".*Thesis.*\\.csv$", full.names=TRUE)
list_of_frames <- lapply(files, read.csv)

将所有 data.frames 存储在一个列表中。

【讨论】:

(1) list.files(..., pattern=".*Thesis.*\\.csv$"),跳过grepl。 (2) 应该可能包含list.files(..., full.names=TRUE),否则在当前目录以外的目录中将无法找到它们。 (3)assign工作流效率低,建议list_of_frames &lt;- lapply(files, read.csv)(或fread)。如果您要对许多帧执行相同或非常相似的操作,将它们作为单独的变量保留是低效的。 (4) 如果必须使用for 循环,我建议使用seq_along(files)seq_len(length(files)) 而不是1:length(files)。为什么?当您的文件列表由于某种原因为空 (character(0)) 时,for (i in 1:0) 将运行两次,而不是预期的零次(亲自查看:1:length(character(0)))。 运行良好,非常感谢@DSGym 和@r2evans。我刚刚添加了这个短代码以将其存储为数据框: Thesis_Data = as.data.frame(list_of_frames[[1]]) 你不需要as.data.frame。您的数据已存储为 data.frame 感谢您的注意,@r2evans。我所需要的只是导入名称中包含“论文数据”一词的 .csv 数据文件,在您和 DSGym 的帮助下,我能够做到这一点。我只有一个数据文件,而不是多个数据文件。【参考方案2】:

未经测试,因为您不提供示例数据,但这应该可以:

library("rio")
library("dplyr")
data <- list.files( # find respective files
  path = "./Thesis_Folder",
  pattern = ".csv$", # you might want a more specific regex if possible
  full.names = TRUE
) %>% 
  lapply(import) %>% # import from rio usually works well
  bind_rows() # bind the list of data.frames to one big df

【讨论】:

感谢您抽出宝贵时间提供帮助,@JBGruber。不幸的是,这段代码不起作用,它导入了空的数据框对象。另外,我不确定这是否可以做到,因为此代码不包含特定单词(论文数据)。 正如我在上面所写的,您可能希望更改模式以仅获取您真正想要的文件。如果所有文件都真正以“论文数据”开头,您可能需要"Thesis data.+.csv$" 之类的东西。我现在对此进行了测试,代码本身可以工作。

以上是关于如何在 R 中导入文件名中包含特定单词的 .csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中导入 CSV 文件? [关闭]

如何更新/覆盖当前在 R 中导入的 csv 文件

如何在R中导入CSV文件? [关闭]

将 php 中包含的 HTML 表单信息写入 CSV 文件

如何从js文件中包含qml文件

在 R 中导入 excel 表头