提问人:NicolasBourbaki 提问时间:7/4/2023 最后编辑:Konrad RudolphNicolasBourbaki 更新时间:7/4/2023 访问量:55
Rmd 文件,该文件源一个 R 脚本,该脚本源另一个 R 脚本
Rmd file which sources an R script which sources another R script
问:
为了使我的代码模块化,我编写了一个用于绘制数据的 R 脚本,该脚本调用 R 脚本来准备数据(要绘制):
该文件包含一行,而此脚本又包含一行。document.Rmd
source('./R/customPlot.R')
source('./prepareData.R')
运行给我一个未找到的错误消息,可以通过将脚本中的行更改为 )。document.Rmd
./prepareData.R
customPlot.R
source('./R/prepareData.R
但是,在这种情况下,我不能再单独运行它来直观地检查其输出。customPlot.R
我的文件夹结构如下所示:
project/
Rmd/
document.Rmd # calls source('./R/customPlot.R')
R/
customPlot.R # calls source('./prepareData.R')
prepareData.R
通过搜索网络,我了解到生成我的代码包可能是一个可能的解决方案。虽然我的项目有点大,但我想问一下它是否值得开销。毕竟,我项目中的大多数文件都是数据,实际上很少有代码。
答:
1赞
Grzegorz Sapijaszko
7/4/2023
#1
呵呵,有意思......
解决方案可能与功能有关,例如:here::here()
project/
Rmd/
document.Rmd
#'
source(file = "../R/1.R")
#'
R/
customPlot.R
#'
source(file = paste0(here::here(), "/R/prepareData.R"))
#'
prepareData.R
评论
0赞
NicolasBourbaki
7/4/2023
谢谢,这已经很有帮助了。当然,最好的解决方案是没有额外依赖项。
0赞
Grzegorz Sapijaszko
7/4/2023
然后移动 .Rmd 到文件夹,从子文件夹外。问题是,RStudio 项目使用他们的文件夹作为主/基本文件夹......project
Rmd
project
0赞
NicolasBourbaki
7/4/2023
是的,这是一种可能性,尽管这会使代码组织变得不那么明显。
0赞
Konrad Rudolph
7/4/2023
不幸的是,这仅在用户从工作目录运行代码时才有效,即它不健壮。project/
评论