让R的视图()自动在新窗口中打开

时间:2018-03-02 04:20:13

标签: r rstudio viewer

我喜欢使用R中View()调用的源编辑器/数据查看器。我使用多个监视器,当我在主监视器中进行编码时,在侧面监视器上打开一个或两个监视器真的很不错RStudio窗口。必须执行View(df)然后单击"在新窗口中显示"这有点不方便。如果我想查看多个数据帧,我想查看的每个数据帧的按钮。

我想知道是否有某种包装我可以放在一起,或者某些设置隐藏在某处,这可以使我在调用View()后在新窗口中打开自动。有什么想法吗?

2 个答案:

答案 0 :(得分:7)

您可以考虑覆盖查看器选项。

options(viewer = function(url, height = NULL)
{
  if (!is.character(url) || (length(url) != 1))
    stop("url must be a single element character vector.", call. = FALSE)

  if (identical(height, "maximize"))
    height <- -1

  if (!is.null(height) && (!is.numeric(height) || (length(height) != 1)))
    stop("height must be a single element numeric vector or 'maximize'.", call. = FALSE)

  invisible(.Call("rs_showPageViewer", url, title = "RStudio", self_contained = FALSE))  
})

说明:

查看器选项的代码可以在这里找到:https://github.com/rstudio/rstudio/blob/master/src/cpp/r/R/Options.R

您想要的功能(在新窗口中打开)是page_viewer,请参见此处: https://github.com/rstudio/rstudio/blob/779baf9ceb99b6d2455345bcbae3c4e57e164425/src/cpp/r/R/Options.R#L45

当前的默认行为是打开viewer而不是page_viewerviewer选项的代码在此处https://github.com/rstudio/rstudio/blob/779baf9ceb99b6d2455345bcbae3c4e57e164425/src/cpp/r/R/Options.R#L28

这有点古怪,但是您可以覆盖viewer选项并让它打开一个新窗口,而不是在查看器窗格中显示内容,请参见上面的代码片段。

将其集成到您的工作流程中:

(请注意,运行上面的代码只会在当前会话期间产生所需的功能。每次启动新会话时都运行它会花费很多精力。)

  1. 如果确定您不再希望使用查看器窗格,则可以考虑使用上面的代码并将其放在.RProfile locate the ".Rprofile" file generating default options中。我还没有找到解决方法,因为“ rs_showPageViewer”不是基本名称空间(?)的方法。不确定如何引用该方法,... [如果需要此选项,可以进行编辑]。

  2. 写一个小插件。不利的一面是为此引入额外的插件是一种矫kill过正的做法。好处是,您可以在一个会话中通过单击/键盘快捷键在两个选项(窗口和窗格)之间进行切换。

插件:

我将其上传到我的github:https://github.com/Timag/viewerWindow

devtools::install_github('Timag/viewerWindow')安装。

然后选择插件

  • ViewerWindow:从现在开始在新窗口中打开所有查看器。

  • ViewerPane:从现在开始在新窗格中打开所有查看器。

或为其分配键盘快捷键。

enter image description here

答案 1 :(得分:1)

这将立即在新窗口中打开数据框

edit(df)