【问题标题】:Can a Reference Class be made to Log Calls是否可以创建引用类来记录调用
【发布时间】:2013-04-19 02:45:54
【问题描述】:

我有一个关于引用类的问题。我的问题是在我正在开发rCharts 的 R 包的上下文中。它使用参考类从 R 创建交互式绘图。

创建情节涉及一系列调用。这是一个示例,首先创建散点图,然后添加折线图。

p1 <- rPlot(mpg ~ cyl, data = mtcars, type = 'point')
p1$layer(copy_layer = T, type = 'line')

现在,由于引用类就像一个闭包,我想知道是否可以记录所做的调用。这个想法是,如果我可以记录调用的顺序,那么我可以自动插入用于创建可视化的源代码以及 html。

我试图看看我是否可以使用sys.functionmatch.call,但我无处可去。如果有人能指出我如何处理这个问题,将不胜感激。

【问题讨论】:

  • 解决方案应该是公平的:在每种方法中,您都需要calls &lt;&lt;- c(calls, list(match.call()))
  • 谢谢,效果很好!也许我应该将此作为一个不同的问题发布,但推荐的重新运行呼叫列表的方法是什么。
  • 只需eval() 他们 - 但如果你想这样做,你还需要捕获他们使用parent.frame() 执行的环境
  • 谢谢!我意识到我不需要评估它们,因为参考 e 类已经包含所有调用的输出。日志记录仅用于记录调用顺序。如果您作为答案发布,我可以接受。再次感谢。

标签: r reference-class


【解决方案1】:

正如@hadley 所说:

calls <<- c(calls, list(match.call()))

很高兴这看起来奏效了。让我们关闭它。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多