包环境操作和提交给CRAN

包环境操作和提交给CRAN,r,package,rstudio,cran,R,Package,Rstudio,Cran,我已经为shiny设计了一个应用程序,它允许用户在其全局环境中与反应对象交互。我认为这是解决问题的一个关键。然而,我知道,由于全球环境的操纵,CRAN将拒绝这一点。我看到了引导用户创建新环境的答案,但我没有看到如何在“环境”窗格中访问该环境的对象,我只看到了环境名称 如果我从这个例子中运行类似的东西: 我看到了这一点,点击e将调用Viewe 我希望e是用户可以在右侧看到的东西,就像用户在其全局环境中或调试函数时一样: 这里提出了一个类似的问题,但没有涉及更改用户在IDE中查看对象的方式: 这是

我已经为shiny设计了一个应用程序,它允许用户在其全局环境中与反应对象交互。我认为这是解决问题的一个关键。然而,我知道,由于全球环境的操纵,CRAN将拒绝这一点。我看到了引导用户创建新环境的答案,但我没有看到如何在“环境”窗格中访问该环境的对象,我只看到了环境名称

如果我从这个例子中运行类似的东西:

我看到了这一点,点击e将调用Viewe

我希望e是用户可以在右侧看到的东西,就像用户在其全局环境中或调试函数时一样:

这里提出了一个类似的问题,但没有涉及更改用户在IDE中查看对象的方式:

这是一个新领域,所以我希望我的问题有意义。

如果您运行attache,则可以在环境窗格中选择e。您应该将其与detache配对,这样您就不会永久地弄乱用户的搜索列表

如果用户选择在连接e时查看它,它在分离时不会消失,但是如果用户查看不同的环境,在分离后将无法再次选择

我不知道是否有RStudioAPI方法可以自动选择它

编辑添加:附加功能创建一个新环境,在附加时复制e的值。那可能不是你想要的。但有一种方法可以获得一个活的:

attach(NULL, name = "Viewable")
e <- as.environment("Viewable")

# Now somehow get the user to view it in the Environment pane

# Clean up the search list
detach("Viewable")
然后你就有了一个生活环境,比如

e$a <- 123

将显示在那里。

好的,再近一步。这会显示在窗格中,但当我运行上面的代码时,在该窗格中显示为空环境,即使lsenvir=e显示值。我已经用该问题的解决方案编辑了我的答案。您不应该篡改全局环境,因为您不知道其中包含什么。最坏的情况是,当您分配、obj、globalenv时,您会覆盖用户先前创建的现有对象e。
e$a <- 123