我使用RStudio
对大型数据集进行质询。我使用使用常规R图形制作的图形蒙太奇来查看它的块,并使用一些manipulate()
控件来控制子集。当我在显示器上看到一些有趣的东西时,我想要选择一些XY坐标对(不是数据点,但是在相同的空间中),点击Finish
提供的locator()
按钮来捕捉我的选择,然后回去浏览。通过这种方式,我构建了一组拾取的XY位置以供进一步处理。
所以我的manipulate()
控件主要是子集参数,但我还有一个名为Pick Points
的按钮,可以进入locator()
模式。
这几乎可行,但当我点击Finish
终止locator()
时,事情就不能正常工作了。 locator()
按预期完成并返回坐标数组列表,但图形显示仍处于locator()
十字准线模式,Finish
按钮仍然存在。任何进一步的点击或Finish
按钮点击都会引发错误弹出Method not found
。
我可以右键点击图表并Reload
重置内容而不会损坏正在运行的程序或保存的数据,但这有点让人分心。
这是一个引发错误的最小例子。
demonstrateBug <- function() {
manipulate(
{
if( pickData ){
locData <- locator()
nPoint <- length( locData$x )
message( " ... Picked ", nPoint, " points" )
} else {
plot( runif(10), runif(10) )
}
},
pickData = button("Pick Points")
)
}
我已尝试使用Google,但很少有人提及manipulate()
和locator()
的特定组合,而且没有关于此类错误的内容。
locator()
在针对manipulate()
增强的图形绘图运行时可以从RStudio控制台正常工作,但这不会做我想要的。
如果我给locator()
一个固定数量的点,它会返回cue,但十字线和按钮仍然存在。无论如何,我不想要固定数量的积分。
在OSX Yosemite上运行R 3.1.2 RStudio 0.99.441
(我之前从未在此平台上寻求帮助,所以我希望这一切都正确!)