在一個Shiny應用程序中,有沒有一種方法可以保留舊的無功輸出並將其顯示在應用程序中以及新的無功輸出?舉個例子:假設我想顯示一個線性模型的彙總表,我逐漸添加更多的變量。我目前有一個checkboxGroupInput
面板,我使用該面板選擇要包含在模型中的解釋變量,然後渲染一個包含使用所選變量估計的模型摘要的表格。現在,當我決定使用一組不同的變量時,我想保留顯示的原始摘要表,但還要在舊的摘要表下添加新的摘要表。如果可能的話,我想顯示所有過去的反應表實例,即應用程序中顯示的表格數應該等於我決定在整個應用程序中使用的不同解釋變量集的數量。目前,該表格的ui
部分中的htmlOutput
和stargazer
包中的renderText
部分和server
部分中的renderText
呈現。R Shiny:保留舊輸出
0
A
回答
1
這是一種有效的方法。它使用一個reactiveValues
對象,並且每次單擊「Fit Model」按鈕時,都會將新模型附加到列表的末尾。數字輸入控制在屏幕上顯示的模型數量。這保留了您在會議中適合的每個模型。
我沒有做stargazer
表,因爲我不熟悉它。但你應該能夠很容易地適應這一點。
library(shiny)
library(broom)
shinyApp(
ui =
shinyUI(
fluidPage(
sidebarLayout(
sidebarPanel(
checkboxGroupInput(inputId = "indep",
label = "Independent Variables",
choices = names(mtcars)[-1],
selected = NULL),
actionButton(inputId = "fit_model",
label = "Fit Model"),
numericInput(inputId = "model_to_show",
label = "Show N most recent models",
value = 2)
),
mainPanel(
htmlOutput("model_record")
)
)
)
),
server =
shinyServer(function(input, output, session){
Model <- reactiveValues(
Record = list()
)
observeEvent(
input[["fit_model"]],
{
fit <-
lm(mpg ~ .,
data = mtcars[c("mpg", input[["indep"]])])
Model$Record <- c(Model$Record, list(fit))
}
)
output$model_record <-
renderText({
tail(Model$Record, input[["model_to_show"]]) %>%
lapply(tidy) %>%
lapply(knitr::kable,
format = "html") %>%
lapply(as.character) %>%
unlist() %>%
paste0(collapse = "<br/><br/>")
})
})
)
+0
這個工作,@Benjamin! – Skumin
相關問題
- 1. R shiny conditionalPanel輸出值
- 2. R Shiny:非反應性文本輸出
- 3. 從R Shiny App輸出純HTML文件
- 4. R shiny:如何循環輸出plotly圖
- 5. Shiny R:執行Slider輸入
- 6. R Shiny嵌套uiOutput錯誤:輸入=> uiOutput => uiOutput =>輸出
- 7. 基於R中的動態用戶輸入打印輸出Shiny
- 8. logrotate保留舊文件名
- 9. Sitecore保留舊網址
- 10. NSData保留舊值-iPhone
- 11. 變量保留舊值
- 12. Lua Class保留舊值
- 13. 更新行保留舊值
- 14. File.copyTo保留舊文件名
- 15. 功能不保留舊值
- 16. Proguard保留R類
- 17. 將base64 JPG保存到R盤中 - Shiny
- 18. 如何保留輸出縮進?
- 19. Shiny rcharts多圖表輸出
- 20. 保留「rollmean」輸出的所有數據
- 21. R Shiny DateRange僅輸入月份年份
- 22. 用R中的Shiny排列輸入
- 23. 初始化tabPanel輸入值Shiny R
- 24. 在R中輸入後分配值Shiny
- 25. R shiny updateCheckboxInput
- 26. 雙擊R-shiny
- 27. R Shiny not randomizing
- 28. R Shiny Destroy ObserveEvent
- 29. R Shiny:輸出功能在eventReactive()內不起作用
- 30. R Shiny:將整數轉換爲無效輸出
你可以追加或r/cbind新表到舊錶,並在表中創建一個額外的變量指示輸出來自哪個模型?理論上,如果生成一個新表,則可以隱藏一堆UI數據表,如果生成新表,則將當前表更改爲其中一個NULL表,以便現在它將顯示出來。但是,當您生成新的表格時,您必須手動對錶格的移動進行編碼,並且只能在手動編寫到UI中時顯示儘可能多的舊結果,因此它不會永遠持續下去。我更喜歡第一個解決方案。 –