【发布时间】:2020-07-22 05:39:57
【问题描述】:
我正在尝试使用诸如“with”之类的构造来允许更轻松(更懒惰?)操作 R6 对象。考虑以下(最小)示例:
library(R6)
ToyClass<-R6Class(classname = "ToyClass",
public = list(
data=data.frame(x=c(1,2,3),y=c(4,5,6)),
color = "red",
symbol = 16,
initialize=function(mult){
self$data$x <- self$data * mult
}
)
)
foo <- ToyClass$new(2)
显然,我可以在我的对象中绘制数据
plot(foo$data$x,foo$data$y,col=foo$color,pch=foo$symbol)
但是,我很懒(因为我有很多这样的对象要绘制,所以复制/粘贴/编辑很耗时并且容易出错)我想做
with(foo,
plot(data$x,data$y,col=color,pch=symbol)
)
这不起作用:
Error in plot(data$x, data$y, col = color, pch = symbol) :
could not find function "plot"
我明白为什么(foo 表现为一个环境,其中 plot() 未定义),但我找不到解决方案。我想如何在全局环境中查找函数名称?
【问题讨论】: