【问题标题】:How to call View() / utils::View() in a function as part of a package?如何在函数中调用 View() / utils::View() 作为包的一部分?
【发布时间】: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 窗口,坦率地说无法预测在其他平台上会发生什么。
  • ViewR Tools for Visual Studio 中运行良好,但正如@alistaire 所提到的,用户界面可能有点随机。以编程方式,这似乎不是一个好主意。

标签: r viewer


【解决方案1】:

尝试使用View(df) 代替utils::View(df)

或尝试重新启动会话 (Ctrl +shft +F10)

然后再次使用View(df)

或使用dpylr 将其转换为表格然后使用glimpse

-----------代码----------- --------------------

install.packages("dyplr")

dplyr::tbl_df(mtcars)    #to convert data to table class

dplyr::glimpse(mtcars)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多