如何引用不在工作目录中的数据文件

时间:2019-07-19 20:41:26

标签: r

我正在使用R,我知道如何定义工作目录:

setwd("C:/temp/")

我有一个不在此文件夹中的数据文件。我该如何访问?在SAS中,将是这样:

libname x1 "C:\temp";
libname x2 "C:\temp\data folder";

3 个答案:

答案 0 :(得分:2)

有几种方法可以解决此问题。

一种是将当前目录保存在一个变量中,临时更改dir,然后返回到当前目录。

old_dir <- getwd()
setwd("C:/temp/data folder")

#code

setwd(old_dir)

另一种方法是使用函数file.path来创建完全限定的文件名。

path <- "C:/temp/data folder"
filename <- "datastuff.csv"
fullname <- file.path(path, filename)

fullname
#[1] "C:/temp/data folder/datastuff.csv"

答案 1 :(得分:1)

一种方法就是与另一行,

setwd("C:/temp/newfolder") 
read_csv(...)

然后再输入原件让您回来

setwd("C:/temp/") 

我认为library(here)是一个很好的工具,可以轻松设置相对路径并处理目录。

答案 2 :(得分:0)

如果文件位于当前工作目录中,则可以使用与使用文件名相同的方式来使用绝对文件路径或相对文件路径。

对于当前工作目录中的文件:

source("myFile.R")

对于当前工作目录的对等目录中的文件:

source("../folder/myFile.R")

在此相对路径中,../表示“上一个目录”。相对文件路径是相对于您当前工作目录的。

对于系统上任何位置的文件:

source("C:/full/path/to/myFile.R")

在Windows上,绝对路径以C:开头,对于* nix系统,绝对路径以/(“根”)开头。