如何访问/复制View功能?

Kie*_*tin 6 r rstudio

我正在开发一个用于RStudio的插件,它可以打开Shiny中数据框的"增强"视图,允许您过滤和选择列,然后将该代码传递给包含在其中的命令行View().

建议我使用的一个功能是View在加载包时始终替换RStudio中的默认值,以便始终加载我的新查看器.

我想要这个,但也保留了使用RStudio的能力,View如果你想要的话.所以我尝试了这样的代码:

View <- function(data_in, replace = T){
    if (replace){
        print('example')
    }else{
        utils::View(data_in)
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,但是,由于utils::View一样View的RStudio.但是,搜索?View只获取utils版本.我假设RStudio View在加载时被覆盖,但我不知道如何访问它.我很乐意将该函数复制到名为save_view(或类似)的东西,但不知道如何访问它!进入View命令行会给我以下代码

function (...) 
.rs.callAs(name, hook, original, ...)
<environment: 0x516d648>
Run Code Online (Sandbox Code Playgroud)

但是将它复制到一个新函数只会给我一些错误(我想知道它是否与该函数所存在的环境有关)

use*_*330 4

RStudio 将内部 View 函数替换为您所看到的函数。你可以使用它来获取它

RStudioView <- as.environment("package:utils")$View
Run Code Online (Sandbox Code Playgroud)

如果您调用它,它应该执行 RStudio 的操作。

您可以使用 得到原始的utils::View