gpt4 book ai didi

r - 为什么 knitr 不尊重 RStudio 项目细节?

转载 作者:行者123 更新时间:2023-12-02 04:50:52 24 4
gpt4 key购买 nike

在所有其他情况下,当我在 RStudio 项目中工作时,我可以在脚本中进行相对于项目根目录的引用。所以我可以,例如,dfX = read.csv("Data/somefile.csv"),其中文件夹 Data 是相对于我的项目根目录的。

knitr block 中的相同代码找不到该文件。我猜这是因为 knitr 创建了一堆临时目录,它需要相对于文件位置进行引用。有没有一种简单的方法可以改变这种行为?显然,我不想将整个路径添加到项目文件夹——我知道我可以使用 knitr::opts_knit$set(root.dir = rootPath) 轻松完成此操作。这完全破坏了跨机器和操作系统的可维护性。


编辑: 这似乎与 this question 密切相关.

最佳答案

大概你知道调用'knit'时包目录的路径,那么怎么样:

ENV <- new.env()
assign("workingDirectory", getcwd(), envir = ENV)
knitr::knit(...,
# THE ENVIRONMENT IN WHICH THE CODE CHUNKS ARE TO BE EVALUATED
envir=ENV)

然后在你的 rmd 文件中你可以做:

```{r]  print(workingDirectory)```

如果您正在搜索当前安装的位置,您可以使用:

PATH = NULL
for(libPath in .libPaths())
if('myPackage' %in% list.dirs(libPath,FALSE,FALSE)){
PATH = file.path(libPath,'myPackage')
}

if(is.null(PATH))
stop('could not find package directory')

ENV <- new.env()
assign("workingDirectory", PATH, envir = ENV)
knitr::knit(...,
# THE ENVIRONMENT IN WHICH THE CODE CHUNKS ARE TO BE EVALUATED
envir=ENV)

关于r - 为什么 knitr 不尊重 RStudio 项目细节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28524914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com