根據selectizeInput()
輸入我想從一個數據幀的顯示數據的一行。但是,一些變量只有在它們的值不是FALSE
時才被顯示。 selectizeInput()
包含一個佔位符提示,這非常可取。
問題
其實我開發的代碼工作,但直到任何選項被選中顯示
Error in if: argument is of length zero
的應用程序,這是極不可取的內部。
實施例代碼
library("shiny")
# simulate data
data <- data.frame(
name = c("Adam", "Debbie", "Lancelot", "Dracula"),
age = c(21, 48, 72, 1023),
coward = c("yes, a coward", "just a little bit", FALSE, "too old to be a coward")
)
ui <- fluidPage(
# selectize
selectizeInput(
inputId = "input",
label = NULL,
choices = c("..." = "", as.character(data[, "name"])),
selected = NULL,
multiple = FALSE
),
# show output
uiOutput(outputId = "output")
)
server <- function(input, output, session){
output$output <- renderUI({
div(
# show name
data[which(input$input == data[, "name"]), "name"], br(),
data[which(input$input == data[, "name"]), "age"], br(),
# if "coward" is not FALSE than show its value
if(data[which(input$input == data[, "name"]), "coward"] != FALSE){
data[which(input$input == data[, "name"]), "coward"]
}
)
})
}
shinyApp(ui, server)
嘗試的解決方案
試過在suppressWarnings()
或suppressMessages()
包裹if()
語句。不會改變任何東西。還試圖把!is.null(input$input) &&
內if()
條件,但它只是改變了最初的錯誤
Error: missing value where TRUE/FALSE needed
問題
怎樣寫條件,使shiny
不會選擇在selectizeInput()
選項前返回一個錯誤?
任何其他更一般的黑客迫使shiny
不顯示應用程序內的錯誤消息?
我覺得我真的缺少明顯的東西在這裏...
確實沒有顯示錯誤,但即使指定了應用程序也沒有顯示變量「懦夫」。 – Siemkowski