[英]Access/use R console when running a shiny app
有人知道在運行閃亮的應用程序時是否可以訪問 R 控制台嗎? (如果可能的話,在后台運行閃亮的應用程序也會有所幫助)
我需要這個來操作 .GlobalEnv 中的對象,這些對象在閃亮的應用程序中使用,這必須使用命令行來完成。
啟動應用程序時,控制台嗡嗡作響。 是否可以從應用程序內部訪問控制台?
提前致謝!
R(和閃亮的)運行單線程。 該線程由閃亮的應用程序使用,因此您無法在應用程序運行時與 R 交互。 如果您想在閃亮的會話期間運行交互式命令,您需要像@eric-canton 提到的那樣在您的應用程序中放置一個browser()
。
一個非常簡單的應用程序可能如下所示
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 跳出交互式控制台並恢復應用程序嗯,我也有類似的疑惑! 就我而言,解決方案是創建我自己的 Shiny 服務器: https : //github.com/rstudio/shiny-server
一方面,當我想更改或測試新元素時,我在 RStudio IDE 中有我的應用程序。 確實這是測試版。 要運行應用程序,每次端口更改時都執行 runApp(dir)。
另一方面,我在 Shiny 服務器中有穩定版本。 這是一種有用的方法,可以在您進行一些更改時從不同設備進行連接並擁有可操作的版本。 應用程序一直在運行,你必須在這個文件中配置你的端口:/etc/shiny-server/shiny-server.conf。
如果您需要有關 Shiny 服務器的更多信息,請訪問此網站: https : //rstudio.github.io/shiny-server/latest/#configuration-settings
不能使用<<-
全局賦值運算符嗎? 我不確定您需要設置的變量有多復雜,但假設您只需要將某個變量t
更改為 5。
我們可以創建一個textBoxInput
來改變input$new_t
變量。 然后有一個觀察者:
observeEvent(input$new_t, t <<- input$new_t)
然后,當input$new_t
改變時,全局變量t
改變。
編輯:另一種選擇是在訪問您需要更改的變量的對象中放置一個browser()
,就在該變量被訪問之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.