【问题标题】:R package building errorR包构建错误
【发布时间】:2016-10-19 16:05:29
【问题描述】:

我正在尝试构建一个 R 包。我通常在 Rstudio 中运行 clean and rebuild 命令。我现在收到此错误消息:

==> devtools::document(roclets=c('rd', 'collate', 'namespace', 'vignette'))

Updating ED2io documentation
Loading ED2io
Deleting grapes-equals-grapes.Rd
Writing NAMESPACE
Documentation completed

==> R CMD INSTALL --preclean --no-multiarch --with-keep.source EDio

* installing to library ‘/opt/local/Library/Frameworks/R.framework/Versions/3.3/Resources/library’
* installing *source* package ‘ED2io’ ...
** R
** preparing package for lazy loading
No man pages found in package  ‘ED2io’ 
** help
Error in .get_package_metadata(dir, FALSE) : 
  Files 'DESCRIPTION' and 'DESCRIPTION.in' are missing.
ERROR: installing Rd objects failed for package ‘ED2io’
* removing ‘/opt/local/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ED2io’

Exited with status 1.

DESCRIPTION 文件实际上在项目文件夹中,看起来还可以。提供一个可重现的示例有点困难,因为项目中有很多文件。也许有人已经看到了这个错误。

【问题讨论】:

  • 平日:Files 'DESCRIPTION' [...] missing.。我不使用devtools,但我认为您调用了错误/不完整的函数来创建存根包。
  • 也许从 package.skeleton()devtools::create()pkgKitten::kitten() 重新开始。我主要使用后者。
  • 复制粘贴失败? “R CMD INSTALL --preclean --no-multiarch --with-keep.source EDio”,但其他一切都说“ED2io”。加上你的提示看起来很奇怪。我在 SO 上追了太多的复制粘贴幽灵,无法进一步解决,直到你解决所有问题。
  • 这只是一个名字,它可能会令人困惑,但事实并非如此。我的 R 项目名为 EDio,而包名为 ED2io。
  • 我将 R 项目的名称更改为 ED2io,但我遇到了完全相同的错误

标签: r build roxygen2 r-package


【解决方案1】:

原来是roxygencmets 中缺少的转义字符。

#' @name %==% 而不是 #' @name \%==\%

【讨论】:

  • 当我有一个简单的包时,我无法复制您的错误,因为它的功能是在 roxygen 中有一个带有 #' @name %==% 的 .R 文件。如果我添加反斜杠和 re-document() 那么我会得到一个 backslash-grapes-equals-backslash-grapes.Rd 文件和一个错误,因为那里有两个 \alias 行。
  • 嗯,我不完全确定,但由于改变它使错误消失,我认为这就是原因。你说的“两个\alias”是什么意思?
  • 实际上,当我清理和构建时,它现在不会给我一个错误,但我有你提到的相同的 Rd 文件和两个 \alias 行。即使我取消文件并重新生成它仍然有这两条alias 行。这是为什么呢?
猜你喜欢
  • 2017-05-14
  • 2018-09-21
  • 2012-12-29
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多