当我运行devtools::check()构建我的包并生成rmarkdown vignette的html文件时,我收到一条错误,指出无法找到数据文件.可以使用以下任何一个构建html文件:
knitr::knit2html('vignettes/myvignette.Rmd') # works fine
devtools::build_vignettes() # works fine
devtools::build() # works fine
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时,devtools:check()我得到:
mydata <- read.csv("data/mycsv.csv")
Warning in file(file, "rt") :
cannot open file 'data/mycsv.csv': No such file or directory
When sourcing 'myvignette.R':
Error: cannot open the connection
Execution halted
Run Code Online (Sandbox Code Playgroud)
我怎么devtools::check()去上班?system.file可能是相关的,但我无法适应它来解决我的问题.我意识到使用rda数据文件可能是一种解决方法,但我想在这种情况下使用纯文本文件来存储数据.
这是myvignette.Rmd,在/ vignettes中
<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->
```{r setup, message=FALSE, echo=FALSE}
library(knitr)
# This is necessary to direct knitr to find the
# 'data', and other directories that contain …Run Code Online (Sandbox Code Playgroud) 在写作R附加手册指出:
data子目录用于数据文件,要么通过延迟加载提供,要么使用data()加载.(选择是由DESCRIPTION文件中的'LazyData'字段进行的:默认情况下不会这样做.)它不应该用于包所需的其他数据文件,并且约定已经成长为使用目录inst /这些文件的extdata.)
但目前尚不清楚包裹"需要"哪些数据.我想将数据用于以下(并非总是相互排斥)的原因:
但目前尚不清楚哪些应该放在data文件夹中,哪些应该进入inst/extdata.是否存在"数据"应该转移到其他地方的条件?
相关问题:以前的问题(例如R Packaging中的inst和extdata文件夹以及在包检查R 2.14.0期间使用带插板的inst/extdata)给出了一些使用说明,但是没有告诉我如何确定使用哪个目录.另一个问题,R - 我应该在哪里放置RDA文件 - /R,/ data,/ inst/extdata?,获得最接近,但似乎专注于RDA和RData文件.
我正在尝试编写R包.我正在从硬盘加载一个csv文件,我希望以后将我的R代码和我的csv文件捆绑到一个包中.
我的问题是如何在生成pakage时加载我的csv文件,我的意思是现在我的文件地址类似于c:\ R\mydirectory ....\myfile.csv但是在我发送给别人之后怎么可以我有一个该文件的相对地址?
如果其他人不清楚,请随意更正此问题!
在我的计算机上运行时,devtools::check()我可以使用 .bib 文件的绝对路径强制构建我的包,而不会出现错误。但由于我将所有引用都包含在包 vignette 中,并尝试指向包含所有 bibtex 引用的 .bib 文件,所以我还没有获得使用 GitHub Actions 构建的包(其中绝对路径没有意义)。我正在寻求有关如何指向 vignette 的 YAML 标头中的 .bib 文件的建议。
目录中 .bib 文件的位置inst/允许我使用包的 .Rd 文档中的引用(如此处建议的: https: //geobosh.github.io/Rdpack/#org88fb0a7),所以我最感兴趣在让我引用该位置的文件而不是将其保存在备用目录中的解决方案中。
我的 YAML 标头内容如下:
---
title: "Using_my_package"
output: rmarkdown::html_vignette
bibliography: "where/I/keep/my/package/inst/REFERENCES.bib"
latex_engine: xelatex
vignette: >
%\VignetteIndexEntry{Using_my_package}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
%\SweaveUTF8
---
Run Code Online (Sandbox Code Playgroud)
我也尝试过
bibliography: `'r system.file("inst", "REFERENCES.bib", package="mypackage")`'`
Run Code Online (Sandbox Code Playgroud)
如何在 YAML 标头中使用相对路径,以便可以从任何位置构建小插图?