【问题标题】:Using inst/extdata with vignette during package checking R 2.14.0在包检查 R 2.14.0 期间使用带有小插图的 inst/extdata
【发布时间】:2011-11-14 23:05:43
【问题描述】:

我有一个包,其中包含一个 csv 文件,我在每个 R-exts 中放入了 inst/extdata。小插图需要此文件。如果我直接 Sweave 小插图,一切正常。但是,当我运行 R --vanilla CMD check 时,检查过程找不到该文件。我知道在检查过程中它已被移动到 .Rcheck 目录中,这可能是问题的一部分。但我不知道如何设置它,所以直接 Sweave 和小插图构建/检查都有效。

小插图包含这样的一行:

EC1 <- dot2HPD(file = "../inst/extdata/E_coli/ecoli.dot",
node.inst = "../inst/extdata/E_coli/NodeInst.csv",

函数dot2HPD通过以下方式访问文件:

    ni <- read.csv(node.inst)

这是错误信息:

    > tab <- read.csv("../inst/extdata/E_coli/NodeInst.csv")
Warning in file(file, "rt") :
  cannot open file '../inst/extdata/E_coli/NodeInst.csv': No such file or directory

  When sourcing ‘HiveR.R’:
Error: cannot open the connection
Execution halted

顺便说一句,这与 question 有关,但该信息似乎已过时,并没有完全涵盖这一领域。

我在 Mac 上。

【问题讨论】:

    标签: r package packages r-package


    【解决方案1】:

    您是否尝试过使用system.file 而不是硬编码的相对路径?

    EC1 <- dot2HPD(file = system.file("inst", "extdata", "E_coli", "ecoli.dot", package = "your_package+name"))
    node.inst <- system.file("inst", "extdata", "E_coli", "NodeInst.csv", package = "your_package_name")
    

    【讨论】:

    • 谢谢马克斯。我试过了,但它返回一个空字符串。查看 ?system.file,暗示必须已经安装了包(因为有一个 lib.loc 参数)。也许需要的是 system.file 的想法,但在检查环境中进行了评估。
    • 省略inst;该目录在安装过程中被删除 -- system.file("extdata", "E_coli", "ecoli.dot", package="your_package+name")
    • 我看到了另一个问题。感兴趣的文件位于 BAH/packages/HiveR/inst/extdata/E_coli/ 但是,在检查过程中,“inst”文件夹消失了,而感兴趣的文件的路径现在是:BAHpackages/HiveR.Rcheck/HiveR/extdata /E_coli/NodeInst.csv
    • @MartinMorgan 谢谢马丁。您的方法适用于构建和检查包,但不适用于直接 Sweave。但是,我可以忍受!
    猜你喜欢
    • 2012-11-07
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    相关资源
    最近更新 更多