【问题标题】:R CMD check error : how to get rid of hidden files and directory in devel R package on windows?R CMD检查错误:如何摆脱Windows上devel R包中的隐藏文件和目录?
【发布时间】:2017-04-18 11:04:43
【问题描述】:

我正在 Rstudio 上构建我的 R 包,并且我正在为我的包运行 R CMD 检查。但是,R CMD 检查会警告一些可能导致错误的问题。我检查了我的项目主目录,确实有些文件被隐藏了,现在我将它们设置为可见。只是出于好奇,如何在我的包目录中停止存在 .gitignore, .Rproj.user, .git ? R CMD 检查抱怨这些,因为这些文件不是包的属性,也不是 R 包结构约定。如何在我的 Packages 中消除这些警告?我试图在我的机器上创建虚拟包,但这些属性总是显示在包主目录中,为什么在使用 Rstudio 构建 R 包时会发生这种情况?如何修复此 CMD 检查错误?请问有什么办法吗?

根据编写R扩展手册,R包结构应该是:

myPackage
 `- inst
     `- extdata
             `- data1.csv
             `- data2.csv
 `- R
    `- ...
 `- NAMESPACE
 `- man
     `-hello.Rd
 `- DESCRIPTION
  • 注意:

这是 R CMD 检查会话,部分错误信息如下:

找到以下可执行文件: .git/objects/00/bc868b99806415c87749e4a2e060f99eb811da .git/objects/01/10cc76aa5573ca9401e72b36ad3672b39f23cb .git/objects/01/5c9910f52a0560426a1b00e1e31e1f060afdfb .git/objects/03/0ca1ef161838ebeb6a225f354a6a8eec95e472 …… ...

  .git/objects/fd/6439dfc6532e7e3a76e76b3e4ca4fd683b2c5e
  .git/objects/fd/ebc184b447002ee6239231093eb026b9bb3aec
  .git/objects/fe/02f64dd278d70ff2e5fb212834d131bc23fddb
  .git/objects/ff/15763b397945d0ee2e2523eab1bfd460f84529
  .git/objects/ff/5413a4dc5f2710fe30ad14f4eb10992ad5aee4
  .git/objects/ff/b8e86c018008d3cee09871f76df3a7277cb1c7
Source packages should not contain undeclared executable files.
See section 'Package structure' in the 'Writing R Extensions' manual.
* checking for hidden files and directories ... NOTE
Found the following hidden files and directories:
  .gitignore
  .Rproj.user
  .git
These were most likely included in error. See section 'Package
structure' in the 'Writing R Extensions' manual.

inst/ 必须在我的包主目录中创建,但我在构建包时没有此属性。为什么我错过了这个目录?谁能指出我如何解决这个问题?如何修复此 CMD 检查错误?在此先感谢:)

【问题讨论】:

    标签: r windows cmd rstudio


    【解决方案1】:

    你(很可能)做错了。执行以下操作:

    cd ..
    R CMD build yourDirectory/
    R CMD check yourPackage_0.1.0.tar.gz
    

    因为源 tarball 的 创建自动排除您想要跳过的内部目录。这就是为什么检查 tarball(而不是目录)是推荐和记录方法的原因。

    请注意,在 RStudio 中,构建标签中的选项称为“检查”,它就是这样做的:首先创建一个 tarball(在可能运行 roxygen 或配置的其他步骤之后),然后为您检查 tarball。这就像单击一个按钮或键入 Ctrl-Shift-E(在我的平台上)一样简单。

    可以通过.Rbuildignore 文件更好地控制要排除的其他文件,该文件告诉 R 要跳过哪些其他文件。许多文件和目录已经以这种方式隐式声明,包括 git 目录。

    【讨论】:

    • 我应用了您的解决方案,它从 myPackage_0.1.0.tar.gz 中删除了该文件,现在我需要提交这些更改并推送到 git ,我该怎么做?有什么想法吗?
    • 如果你正确地执行了 Dirk 的指令,你的包目录/文件夹中不会有任何改变。你可以检查一下。每次您更改包中的某些内容并想要检查它时,都应该构建 .tar.gz。
    • 您的“无法将其推送到 git”毫无意义,我向您解释的是 关于您的文件(即:用法)而不是 更改为文件.
    • 有什么变化?正如您提到的,您的包目录没有改变。您不需要推送未更改的目录。 R CMD build ... 后跟 R CMD check .... 正在包目录外执行。
    • 也许您已将其添加到.Rbuildignore?我们无法知道,因为您没有显示可重现的来源。 (这已经是您的另一个问题了。)查看this package of mine,其inst/extdata/*.csvresulting tarball当然
    猜你喜欢
    • 1970-01-01
    • 2015-05-05
    • 2011-07-21
    • 2011-07-14
    • 2021-08-26
    • 2015-08-09
    • 2020-12-11
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多