如何只为一个文件打开工作目录中的下一个文件夹?

How to open next folder in working directory for only one file?

我有一个工作目录

setwd("C:/User/WorkDirectory")

我的工作目录中有文件

"File 1.csv", "File 2.csv", "File 3.csv", "Folder 1"

我访问这 3 个文件没有问题

df1<-read.csv("File 1.csv",check.names=FALSE)

但是我想打开文件夹 Folder 1 中的文件,同时保持我的工作目录不变。

我试过这样的东西

read.csv(paste0(setwd("./Folder 1/"),"File Another 1.csv"))

有没有一种漂亮而优雅的方法来做到这一点。我尝试这样做是有原因的,因为此文件夹包含文件的子部分。

使用file.path - setwd用于设置目录,而getwd returns工作目录的路径。

setwd("C:/User/WorkDirectory")
read.csv(file.path(getwd(), "Folder 1", "Another 1.csv"))

或者我们也可以用.来表示工作目录

read.csv(file.path(".", "Folder 1", "Another 1.csv"))

我不是很清楚你的意图,但我想递归 list.files 在这里会有帮助;

setwd("C:/User/WorkDirectory")
temp <- list.files(pattern = "*.csv", recursive = T)

这列出了 WorkDirectory 及其 sub-folders 中的 CSV 文件。您可以遍历列出的文件并将它们读入您的环境;

my_csv_files <- lapply(temp, read.csv)

或者如果您希望将它们作为多个数据帧保存到您的环境中,而不是像上面那样作为数据帧列表:

list2env(
  lapply(setNames(temp, make.names(gsub(".*/([^.]+).*", "\1", temp))), 
         read.csv), envir = .GlobalEnv)