尝试使用重新定义的ggplot :: qplot()时出现环境错误

时间:2014-05-25 02:29:00

标签: r ggplot2 environment

为了避免必须致电print()来显示由ggplot2::qplot制作的图片输出,我使用了@ cbeleites'回答这个问题:ggplot's qplot does not execute on sourcing。但是,尝试运行该脚本会生成以下错误:

Error in exists(name, envir = env, mode = mode) : argument "env" is missing, with no default

这里是追溯输出:

11 exists(name, envir = env, mode = mode)
10 find_global(scale_name, env, mode = "function")
 9 scales_add_missing(plot, c("x", "y"))
 8 ggplot_build(x)
 7 print.ggplot(p)
 6 print(p) at graphics.R#15
 5 qplot(data[["Project Age"]], data = data, geom = "histogram", binwidth = 1) at edaSourceForge.R#8
 4 eval(expr, envir, enclos)
 3 eval(ei, envir)
 2 withVisible(eval(ei, envir))
 1 source("~/diss-floss/analysis/edaSourceForge.R")

最后,关于我如何运行脚本的补充说明。我觉得这很重要,因为我认为错误是由于特定R环境的缺乏可见性 。我在RStudio中运行脚本analysis/edaSourceForge.R,当前工作目录为import

source('~/diss-floss/analysis/edaSourceForge.R')

对于来自工作目录和来自调用模块的用户定义的qplot()相对路径匹配(&#34),这似乎不是问题恕我直言; ../ utils / graphics.R"),当然,我可能在这里错了。

我的项目的目录结构(〜是ruser的主目录):

+- ~/diss-floss (Project's root)
|- ...
|- import (current working directory)
|- analysis (edaSourceForge.R)
|- utils (graphics.R)
|- ...

ggplot::qplot重新定义功能位于graphics.R模块中:

qplot <- function (x, y = NULL, z = NULL, ...) {
  p <- ggplot2::qplot (x = x, y = y, z = z, ...)
  print (p)
}

实际调用用户定义的 qplot函数位于edaSourceForge.R模块

if (!suppressMessages(require(ggplot2))) install.packages('ggplot2')

source("../utils/graphics.R")

正如我所说,我认为错误与找不到特定R环境有关,我尝试使用各种与环境相关的R函数,但到目前为止它没有用。

我将非常感谢您的帮助和建议!

0 个答案:

没有答案