Q:R中文件夹结构安排的更好实践
为了整齐地排列文件结构,我倾向于将所有R脚本放在R子文件夹下,将图像放在img下。但这也会导致一个明显的问题,我必须记住我是在R下工作的,而不是在当前的工作目录下工作的。使用shiny时,问题变得很明显 下面是一个玩具示例结构Q:R中文件夹结构安排的更好实践,r,R,为了整齐地排列文件结构,我倾向于将所有R脚本放在R子文件夹下,将图像放在img下。但这也会导致一个明显的问题,我必须记住我是在R下工作的,而不是在当前的工作目录下工作的。使用shiny时,问题变得很明显 下面是一个玩具示例结构 WD +--R +--IMG 在编写代码时,一切都很好,因为我正在工作目录下编辑/测试。但实际运行时,工作目录将位于app.R所在的位置,因此图像路径将从IMG/0001.jpg更改为../IMG/000.jpg。我经常花几个小时来弄明白为什么我的单行代码工作得很好
WD
+--R
+--IMG
在编写代码时,一切都很好,因为我正在工作目录下编辑/测试。但实际运行时,工作目录将位于app.R所在的位置,因此图像路径将从IMG/0001.jpg更改为../IMG/000.jpg。我经常花几个小时来弄明白为什么我的单行代码工作得很好,但整个脚本并没有像预期的那样工作,而且总是不会弹出这样的文件
想知道除了addabs路径方式之外,还有没有另一种简单的方式可以像在同一个目录中一样编码,但不会丢失整洁的结构
谢谢您的建议。可能是某种智能路径函数,它会获取路径参数,并根据是否在闪亮模式下运行进行更改
smartPath <- function(path) {
if(isNamespaceLoaded("shiny")&&(shiny::isRunning())) {
# TODO change path to the one in shiny mode
path <- path
} else {
# TODO change path in normal mode
path <- path
}
path
}
非常感谢!它可以扩展到许多其他应用程序。伟大的