【发布时间】:2017-09-14 23:38:49
【问题描述】:
我正在为一个以调用utils::View() 结束的包编写函数。该函数的目的是进行一些数据整理,然后在 Rstudio 数据查看器中使用View() 打开数据集。如果我在全局环境中定义函数,它工作正常。举个例子(跳过数据整理部分):
foo <- function(x) {
View(x)
}
foo(mtcars)
在数据查看器中打开数据集 mtcars。但是,一旦我将它放入我的 r 包中并作为该包的一部分调用该函数,它确实会发出以下错误:
".External2(C_dataviewer, x, title) 中的错误:无法启动数据查看器 另外:警告信息: 在 utils::View(mtcars) 中:无法打开显示”
我尝试使用 utils::View() 或简单地使用 View(),但没有成功。另外,我已经在卸载 XQuartz 并安装了 XQuartz 的情况下进行了尝试,但无法使其工作。
我使用的是 Rstudio 版本 1.0.153 和 R 版本 3.4.1 (2017-06-30) 平台:x86_64-apple-darwin15.6.0(64位) 运行于:macOS Sierra 10.12.6
感谢任何有关如何解决此问题的提示!
【问题讨论】:
-
在大多数情况下,我可能建议不要以编程方式调用
View,而是返回 data.frame 并让用户根据需要调用View。返回可以存储为变量并以任何方式查看的内容(在控制台中,通过View,使用str,或者像DT::datatable这样的花哨的东西)会更有用。 -
可能有理由以编程方式调用
View,但请记住,会发生什么取决于所使用的接口和操作系统。虽然在 RStudio 中发生的事情是一致的,但在从终端调用的 MacOS 上,我得到一个 X11 窗口,坦率地说无法预测在其他平台上会发生什么。 -
View在 R Tools for Visual Studio 中运行良好,但正如@alistaire 所提到的,用户界面可能有点随机。以编程方式,这似乎不是一个好主意。