NAMESPACE不是由roxygen2生成的.跳过. - 与哈德利书混淆

hi1*_*i15 17 namespaces packages r devtools ggplot2

我正在尝试制作一个包,但是当我运行document()它时,我NAMESPACE not generated by roxygen2. Skipped.试图ggplot2,XML, R6在我的函数中使用包.我按以下方式导入它们:

#' @rdname visualization
#' @param hist_data A table of weather variables with PWS created by hist_data function
#' @param variable A character string of variable name
#' @examples
#' table <- getWeather(city = "San Francisco", state="CA")
#' please <- getConditionsTable(table, "2015-03-09")
#' tab <- hist_data(table, please)
#' head(tab)
#' plot_variable_across_all_pws(hist_data=tab, variable="tempi")
#' @import ggplot2
#' @import XML
#' @import R6
Run Code Online (Sandbox Code Playgroud)

我想知道是什么原因造成了这个错误,Namespace除了我之外什么也没有exportPattern("^[^\\.]")

另外,我正在浏览Hadley的r包书http://r-pkgs.had.co.nz/namespace.html 并且对此行感到困惑:

"请注意,您可以选择使用roxygen2生成NAMESPACE,只需生成man/*.Rd或两者.如果您不使用任何与命名空间相关的标签,roxygen2将不会触及NAMESPACE.如果您不使用任何文档相关标签,roxygen2不会触及man /."

这是我做错了吗?还是缺了?

Sat*_*ish 20

  1. 备份NAMESPACE文件,如果您需要它以备将来使用
  2. 删除NAMESPACE文件
  3. 运行devtools::document(),以便roxygen2将在包源目录中生成新的NAMESPACE文件

***确保您@export在R源文件的roxygen2 doc部分中有标记.


Geo*_*off 13

我认为这样devtools可以避免覆盖它本身没有生成的DESCRIPTION和NAMESPACE文件(如果你自己仔细地输入它们,而不是在你的r代码中使用嵌入式roxygen注释,那就要避免焦虑).它并不总是可行,但它会尝试.

据我所知,主要机制是在生成文件时在文件顶部发布注释,然后再查找该注释(边缘有棘手的位,例如,如果你使用@includes在DESCRIPTION文件中创建Collat​​e订单,但我不认为这是你的问题.)

这种评论的一个例子是

# Generated by roxygen2 (4.1.0.9001): do not edit by hand
Run Code Online (Sandbox Code Playgroud)

not generated by ...消息提醒您,并且让您知道devtools不会roxygen2用于为您创建NAMESPACE文件.你可能有没有评论的那个,因为你使用RStudio来启动你的包,而不是devtools::create()

如果您只是删除NAMESPACE文件,我认为devtools::document()这将适合您.

顺便说一句你在上面的示例代码中有一个拼写错误(你有#' @import ggplo2而不是#' @import ggplot2)


F.X*_*.X. 5

感谢@jsta的解决方案,我# Generated by roxygen2: do not edit by hand在文件顶部复制了以下行NAMESPACE,然后复制了一个空行。

然后我devtools::document()在控制台中运行,它会自动替换现有NAMESPACE文件。

我认为顶行正是 roxygen 将查找的内容,以查看该文件是否由 roxygen 生成。

  • 可能是我没说清楚。这是根据别人的答案修改的,但并不完全相同。@jsta 提到复制并粘贴由 roxygen 生成的文件,但我只复制粘贴文件的顶行。我确实赞成原来的答案。此外,我宁愿留下评论而不是作为答案发布,但我没有足够的声誉来这样做;) (3认同)