在我的常规.R脚本中,我使用相对路径来使用rgdal::readOGR
读取数据:
library(rgdal)
pts <- readOGR("data/points.gpkg")
然而,Rmd doc中的R片段中的代码相同:
```{r}
pts <- readOGR("data/points.gpkg")
```
返回以下错误:
Error in ogrListLayers(dsn = dsn) : Cannot open data source
如果我使用
,则会解决此错误```{r}
pts <- readOGR("../data/points.gpkg")
```
但我不能在常规.R脚本中使用该路径字符串。如果我想复制我在R脚本中编写的代码以在R markdown文档中使用,这是令人沮丧的。
我有两个问题:
1)为什么会这样?
2)如何编写路径以便它们在.R和.Rmd文档中运行
答案 0 :(得分:3)
Rmd文档的默认工作目录是它所在的目录。您有很多选择:
"./"
,在Rmd中设置"../"
(如果您想要花哨,可以自动检测到这一点)< / LI>
还有很多这样的变化。
答案 1 :(得分:2)
在https://github.com/yihui/knitr/issues/277找到的另一个解决方案是将根目录指定为文档顶部的选项:
opts_knit$set(root.dir = 'path/to/directory')