【问题标题】:How to read csv inside a folder in R?如何在R中的文件夹中读取csv?
【发布时间】:2015-07-30 16:45:16
【问题描述】:

我在一个目录中工作,但我要读取的数据在一个子目录中。当我尝试读取 csv 文件时出现错误,我的代码如下:

setwd("~/Documents/")
files <- list.files(path = "data/")
f <- list()
for (i in 1:length(files)) {
  f[[i]] <- read.csv(files[i], header = T, sep = ";")
}

我得到的错误是:

Error in file(file, "rt"): cannot open the connection

我做错了什么?

【问题讨论】:

  • 试试paste0("data/", files[i])files 包含文件名,而不是相对路径。
  • 使用list.files(path = "data/", full.names = TRUE) 可能会解决问题。
  • 感谢@user2706569 完美运行。
  • 感谢@Benjamin,您的回答也有效

标签: r csv for-loop


【解决方案1】:

假设您已正确指定其他 read.csv 参数,以下将起作用。

setwd("~/Documents/")
files <- list.files(path = "data/")
f <- list()
for (i in 1:length(files)) {
  f[[i]] <- read.csv(paste0("data/",files[i]), header = T, sep = ";")
}

或者,您可以删除paste0,并首先将您的工作目录设置为~/Documents/data/

setwd("~/Documents/data/")
files <- list.files() #No parameter necessary now since you're in the proper directory
f <- list()
for (i in 1:length(files)) {
  f[[i]] <- read.csv(files[i], header = T, sep = ";")
}

如果您需要在此循环结束时进入~/Documents/,则通过在循环后添加以下内容来完成它。

setwd("~/Documents/")

【讨论】:

  • 谢谢,我需要使用子目录,因为我在 Rstudio 项目中工作时在主目录中有更多文件。
猜你喜欢
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 2020-01-30
  • 2018-01-27
  • 2015-03-29
  • 1970-01-01
相关资源
最近更新 更多