我在閃亮的應用程序中使用反應性事件,被動輸出是renderDataTable的一部分,我想更改該函數的初始結果。eventReactive()的初始狀態
從我看過的紀錄片:"eventReactive() returns NULL until the action button is clicked. As a result, the graph does not appear until the user asks for it by clicking 「Go」."
但這不適用於我的代碼。
生殖實施例:
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(
actionButton("go","Go"),
DT::dataTableOutput('tbl')),
server = function(input, output) {
dat <- eventReactive(input$go,
head(iris,10)
)
output$tbl <- renderDataTable({
if(is.null(dat())){
data.frame("a"=NA,"b"=NA,"c"=NA,"d"=NA,"e"=NA)
}else(data.frame(dat()))
})
}
)
這應該與5個變量按鈕被點擊之前,它不返回一個空data.frame。
當按鈕被點擊後,函數會起作用,我認爲函數的狀態在之前是NULL,因爲它是if語句的一部分。
看起來像你的第一個問題是'renderDataTable'應該是'DT :: renderDataTable',否則數據框將永遠不會顯示出來 –
在你正確的例子中缺少庫(DT)。 – Sebastian