【问题标题】:to read .csv files in R [closed]在 R 中读取 .csv 文件 [关闭]
【发布时间】:2018-02-17 11:45:16
【问题描述】:

我需要一些帮助。我是 R 的初学者,我不知道如何从不同的文件夹中读取 .csv 文件。我只知道如何从一个文件夹中读取文件。一个文件夹包含新数据 .csv,另一个包含旧数据 .csv,我必须分两次阅读它们。 (注意:两个文件夹中有很多文件)。稍后我将不得不比较新旧文件。你能帮我写一个代码吗?或者只是告诉一些建议。谢谢你。

【问题讨论】:

  • 什么是海量?您应该首先在 Google 和 Stack Overflow 上搜索 read.csv/read.table
  • 如果您知道如何读取一个文件夹中的文件,那么您就知道如何读取任何文件夹中的文件。我不明白问题是什么。如果您需要帮助,请提供minimal reproducible example。实际上,这太宽泛了,因为您本质上是在询问如何在 R 中处理文件。
  • 你的两条路是什么?你需要了解他们。问我们不会告诉你这些。使用 Windows 文件资源管理器或搜索或其他任何方式来定位文件的路径。

标签: r csv


【解决方案1】:

没有一个最小的例子,我只能向你展示一般的解决方案。

您可以使用list.files 列出目录中的所有文件。接下来,您遍历它们并将每个文件读入一个列表。

old_path <- 'your/path/to/old/folder/'
files_old <- list.files(path = old_path, pattern = '.csv')
read_files_old <- list()
for(f in files_old){ 
   read_files_old[[f]] <-read.csv(paste0(old_path ,f)) 
}

接下来,您对新文件执行相同操作:

new_path <- 'your/path/to/new/folder/'
files_new <- list.files(path = new_path, pattern = '.csv')
read_files_new <- list()
for(f in files_new){ #
  read_files_new[[f]] <-read.csv(paste0(new_path,f)) 
}

以后,你可以用任何你喜欢的方式比较它们。

如果你不想使用 for 循环,你可以像这样使用 lapply:

read_files_old <- lapply(files_old, read.csv)

【讨论】:

  • 谢谢。但是当我使用您的代码时,R 说“文件中的错误(文件,“rt”):无法打开连接此外:警告消息:在文件(文件,“rt”)中:无法打开文件 'G5N00131(1)。 csv': 没有这样的文件或目录'
  • @EglėPugačiova 我更新了我的答案。现在你不应该在 for 循环中得到错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多