我有.Rmd
用于报告许多不同项目的数据质量。然后它将分割数据以移除具有缺失数据的子集,并在适当时插入缺失的结果。它会通过write.csv命令以“./Cleansed_data /”
举个例子
write.csv(mtcars, file = "mtcars.csv")
"writeFile.Rmd"
到您的项目工作目录,以及
让它运行。以前我把这个.Rmd从一个地方移到另一个地方,但是现在我想把它建成一个内部包。我已将它(如文档所示)包含在包目录中的inst/rmd
中。
inst/rmd
(如果不存在则创建它)然后我重建包并打开一个新项目。我加载新包并尝试使用render
命令通过system.file
命令运行文档以找到.rmd
,如此
rmarkdown::render(input = system.file("rmd/writeFile.Rmd", package="MyPackage"),
output_file = "writeFile.pdf", output_dir = "./Cars/)
这会将包构建中的报告呈现在output_dir
的文件夹中,但是,这里存在许多缺陷。首先,如果我省略output_dir
参数,报告将呈现到包库中,通常位于c驱动器中的库r安装中。但这是可以解决的。
我无法理解的是,当.Rmd
点击write.csv()
然后(我相信)时,.Rmd正在包环境中呈现,其工作目录是包库文件夹,而不是当前项目目录。
问题
答案 0 :(得分:1)
为了关闭它:
我选择将.Rmd保留在包中。 .Rmd需要移动并使用包进行版本控制,因为它包含用于运行的函数。
为了满足我的要求,我将文档设置为通过表单中的rstudio api获取工作目录。
write.csv(mtcars, file = paste0(rstudioapi::getActiveProject(), "mtcars.csv"))
测试了@CL的答案之后,这也运行并且不依赖于Rstudio作为IDE,但是我知道这些文档会