麻烦依赖于我的包中的第三方包导入

时间:2015-04-01 17:43:38

标签: r ggplot2 packages devtools roxygen2

我的广告资源广泛使用ggplot2来制作自定义图。我在ggplot2文件中导入NAMESPACE。我可以无误地构建,安装和加载包到R中。但是当我从我的包中调用一个函数时,它抱怨它无法在该导入的包中找到一个函数。我调用的函数绝对与绘图无关,也没有使用ggplot2中的任何内容。如何在没有这些类型的错误的情况下从我的包中进行函数调用?

  

theme_beata()中的错误(来自plot.R#14):找不到函数" theme_classic"

第一个函数错误是:

#' A custom ggplot2 theme for Beata
#' @import ggplot2
#' @family themes
#' inheritParams ggplot2::theme_classic
#' @export
theme_beata <- function(base_size = 14, base_family="serif", ticks = TRUE) {

    ret <- theme_classic() +
      theme(axis.line = element_line(size=0.6),
            axis.text = element_text(size = base_size),
            axis.title = element_text(size= base_size + 2),
            title = element_text(size=base_size + 4))
    if (!ticks) {
        ret <- ret + theme(axis.ticks = element_blank())
    }
    ret
}

我正在使用devtoolsroxygen2来记录我的包裹。我还发现在运行document()时我现在收到此错误。

> document()
Updating pkg documentation
Loading pkg
Error in theme_beata() (from plot.R#11) : could not find function "theme_classic"
> traceback()
13: theme_beata()
12: as.vector(y)
11: setdiff(names(theme_gray()), names(new))
10: ggplot2::theme_set(theme_beata()) at plot.R#25
9: eval(expr, envir, enclos)
8: eval(exprs[i], envir)
7: source_one(file, envir = envir)
6: source_many(paths, env)
5: force(code)
4: in_dir(file.path(pkg$path, "R"), source_many(paths, env))
3: load_code(pkg)
2: load_all(pkg)
1: document()

从阅读哈德利关于包装的书中,我不认为DESCRIPTION在出口方面很重要,但下面是底部:

Depends: R (>= 3.1.0)
License: file LICENSE
LazyData: false
Imports:
    dplyr (>= 0.4.0),
    tidyr (>= 0.1.0),
    XLConnect,
    pryr,
    stringr,
    devEMF,
    assertthat,
    grid,
    ggplot2,
    ggthemes,
    GGally,
    broom,
    scales
Suggests:
    lattice

我的NAMESPACE具有以下导入:

import(XLConnect)
import(dplyr)
import(ggplot2)
import(ggthemes)
import(stringr)
import(tidyr)

0 个答案:

没有答案