包环境操作和提交给CRAN

Package environment manipulation and submitting to CRAN

我有 built a package 闪亮,允许用户在他们的全局环境中与反应对象交互。我认为这是故障排除的游戏规则改变者。但是,我知道 CRAN 会由于对全球环境的操纵而拒绝这一点。我看到指导用户创建新环境的答案,但我没有看到如何在环境窗格中访问该环境的对象,我只看到环境名称。

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

e <- new.env()
assign("a", "xyz123", envir = e)
e$b <- 1

我看到了,点击e会调用View(e)

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

这里提出了一个类似的问题,但没有解决如何改变用户在 IDE:

中看到对象的问题

CRAN policy on use of global variables

这是新领域,所以我希望我的问题是有道理的。

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

如果用户在附加时选择查看e,则在分离时它不会消失,但分离后将无法再次用于select,如果用户查看不同的环境。

我不知道是否有 RStudio API 方法自动 select 它。

编辑添加:attach() 函数创建一个新环境,在附加时复制 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")

然后你就有了一个 live 环境,比如

e$a <- 123

会出现在那里。