首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >get中的错误(as.character( of ),mode = "function",envir = envir):模式'guide_legend‘的对象’guide_legend‘

get中的错误(as.character( of ),mode = "function",envir = envir):模式'guide_legend‘的对象’guide_legend‘
EN

Stack Overflow用户
提问于 2020-02-12 11:59:18
回答 1查看 773关注 0票数 0

我正在建立一个包,我遇到了一个问题时,建立一个小。当我试图编织vignette时,我会收到一条错误消息,但是在从控制台运行函数时没有错误。

输入数据示例

代码语言:javascript
复制
a <- c(1,1,2,2,3,3,4,4,5,5)
b <- c("T", "T", "N","N", "N","N", "T", "T", "N", "N")
c <- c("car","bike","car","bike","car","bike","car","bike","car","bike")
d <- c(10,12,15,19,25,29,38,47,66,90)
data <- data.frame(a,b,c,d)
colnames(data) <- c("xaxis", "rug", "type", "val")

在包.r文件中,我想调用一个函数:

代码语言:javascript
复制
#' Test
#'
#' @param data test data
#'
#' @return
#' @importFrom ggplot2 ggplot geom_point geom_rug
#' @importFrom ggnewscale new_scale_color
#' @export
#'
test <- function(data){
  ggplot(data, aes(x = xaxis, y = val, color = type, group = type)) + geom_point() +
    new_scale_color() + geom_rug(aes(x = xaxis, color =rug), sides = "b")
}

我检查并安装了这个包,并试图在一个RMarkdown文档(vignette)中调用这个测试函数。这是我得到的错误:

get中的错误(as.character( of ),mode = "function",envir = envir):找不到模式'guide_legend‘的调用:.bump_aes_scales -> lapply -> match.fun -> get执行暂停

然而,当我在控制台中调用这个函数时,我得到了预期的没有错误消息的情节:

输出

此外,当我从测试函数中删除new_scale_color()时,我没有发现任何错误,而且vignette是完美的。有没有人知道这里的问题似乎是什么,以及如何解决?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 12:52:32

问题似乎是在行的ggnewscale包中,它试图在这里创建一个对ggplot::guide_legend的调用。这是通过match.fun完成的,然后在这条线上抛出一个错误。这可能是因为match.fun只回顾了命名函数的两层父环境。您可以尝试在有问题的函数之前将一个非导出的本地别名函数添加到您自己的包中:

代码语言:javascript
复制
guide_legend <- function(...) ggplot2::guide_legend(...)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60187844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档