有人知道在运行闪亮的应用程序时是否能够访问R控制台吗? (如果可能的话,在后台运行闪亮的应用程序也会有所帮助)
我需要这个来操作.GlobalEnv中的对象,这些对象在闪亮的应用程序中使用,这必须使用命令行完成。
启动应用程序时,控制台很快。是否有可能从应用程序中访问控制台?
提前致谢!
答案 0 :(得分:1)
R(且发亮)运行单线程。闪亮的应用程序使用此线程,因此无论何时运行该应用程序,您都无法与R进行交互。如果要在闪亮的会话中运行交互式命令,则需要在应用程序中放入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()
设置为最后一个参数会导致交互式终端意外终止d
不是反应性值d
运算符为<<-
分配一个新值,因为d
不在您调用的函数之内:Browse[2]> d <<- data.frame(x = 1:200, y = 200:1)
c
并按Enter键来恢复应用程序答案 1 :(得分:0)
一方面,当我想要更改或测试新元素时,我的应用程序在RStudio IDE中。确实这是测试版。要运行应用程序,每次端口更改时都执行runApp(dir)。
另一方面,我在Shiny服务器内部有稳定的版本。这是一种有用的方式来连接不同的设备,并在您进行一些更改时具有可操作的版本。应用程序一直在运行,您必须配置此文件中的端口:/etc/shiny-server/shiny-server.conf。
如果您需要有关Shiny服务器的更多信息,请访问以下网站:https://rstudio.github.io/shiny-server/latest/#configuration-settings
答案 2 :(得分:0)
您不能使用<<-
全局赋值运算符吗?我不确定您需要设置的变量有多复杂,但是说您只需要将一些变量t
更改为5。
我们可以制作一个textBoxInput
来更改input$new_t
变量。然后有一个观察者:
observeEvent(input$new_t, t <<- input$new_t)
然后,当input$new_t
更改时,全局变量t
更改。
编辑:另一种选择是在访问变量之前将browser()
放置在访问需要更改的变量的对象中。