r - 运行 Shiny 应用程序时访问/使用 R 控制台

标签 r console shiny

有人知道在运行 Shiny 的应用程序时是否能够访问 R 控制台吗? (如果可能的话,在后台运行 Shiny 的应用程序也会有所帮助)

我需要这个来操作 .GlobalEnv 中的对象,这些对象在 Shiny 的应用程序中使用,并且必须使用命令行来完成。

启动应用程序时,控制台很忙。是否可以从应用程序内部访问控制台?

提前致谢!

最佳答案

R(和 Shiny 的)以单线程运行。该线程由 Shiny 的应用程序使用,因此只要应用程序运行,您就无法与 R 交互。如果你想在 Shiny 的 session 期间运行交互式命令,你需要输入 browser()正如 @eric-canton 所提到的,在您的应用程序中。

一个非常简单的应用程序可能如下所示

library(shiny)

d <- data.frame(1:10, 1:10)

ui <-  fluidPage(
  actionButton("browser", "Trigger browser()"),
  actionButton("reload", "Reload Plot"),
  plotOutput("plot")
)


server <- function(input, output, session) {
  observeEvent(input$browser, {
    browser()
    1 + 1
  })

  output$plot <- renderPlot({
    input$reload
    plot(d)
  })
}

shinyApp(server = server, ui = ui)

关于代码的一些注释

  • 我输入1 + 1 browser()之后命令,因为设置 browser()根据我的经验,最后一个参数往往会意外地停止交互式终端
  • 您需要一些 Shiny 的事件来触发绘图的重绘,因为 d不是 react 值
  • 如果您在控制台上,则需要为 d 分配一个新值通过使用<<-运算符因为 d位于您正在调用的函数之外:
Browse[2]> d <<- data.frame(x = 1:200, y = 200:1)
  • 您可以通过输入 c 跳出交互式控制台并恢复应用程序然后按 Enter 键

关于r - 运行 Shiny 应用程序时访问/使用 R 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24020636/

相关文章:

r - block 茎的循环或功能

反向日期时间排序 [R]

c++ - 将标准输出重定向回控制台

r - 如何使用 ggplot 创建百分比堆叠形状

r - 将多个 pdf 绘图合并到一个文件中

python - 在python中轮询键盘(检测按键)

c# - 将颜色转换为 ConsoleColor?

python - Django 应用程序在内存中有一个在所有请求之间共享的 Pandas 对象?

删除 plotly 点击事件数据

r - 有没有办法防止切换选项卡时旧图像 "remembering" Shiny ?