我有一个名为“ DIR”的目录。在此目录中有两个文件夹,分别称为“程序”和“数据”,其中包含R脚本,这些文件夹包含我要加载的.csv文件。
我的工作目录设置为“ C:/ User / DIR / programs / processing”,我想从“数据”文件夹中加载一个名为“ flowers.csv”的文件。 (“ C:/User/DIR/data/flowers.csv”)。
我试图将file.path
函数与"../"
一起使用,以便从数据文件夹中加载数据,但是它一直为我提供错误的文件路径。
dir.root <- setwd("C:/User/DIR/programs/processing")
dir.in <- file.path(dir.root, "../raw")
给我
> dir.in
[1] "\\\\C:/User/DIR/programs/processing/../raw"
不是我想要的"\\\\C:/User/DIR/raw/"
当我使用
read.csv("../raw/flowers.csv")
我收到一条错误消息
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") : cannot open file '../raw/flowers.csv': No such file
or directory
任何人都可以帮助我了解发生了什么吗?谢谢!
答案 0 :(得分:0)
使用normalizePath将文件路径转换为规范格式。
dir.in <- normalizePath(file.path(dir.root, "../raw"))
答案 1 :(得分:0)
您将dir.root
设置为错误的路径。 setwd()
不返回您设置的路径,而是返回前一个路径(因此您可以稍后再返回)。
使用此代码执行所需的操作:
olddir <- setwd("C:/User/DIR/programs/processing")
dir.root <- getwd()
dir.in <- file.path(dir.root, "../raw")
您也可以像@chandra所说的那样呼叫normalizePath(dir.in)
,但这不是必需的。