我的 R Shiny 应用程序中有一系列输入,我将它们用作函数的参数,以从数据框中选择特定数据。输入是 dateInput:
dateInput("dateSelect", "Date", format = "yyyy-mm-dd", value = NA)
在我的函数中,我需要指定 dateSelect 是空白还是未选中,以便能够选择所有日期。查看一个正常工作的示例,它不是日期,还有一个简单的 selectInput:
selectInput("teamSelect", "Team", choices = c("All", levels(newEffortstable$team)))
在函数中,这适用于选择“所有团队”:
if(!missing(teamSelect)){
if(teamSelect!="All"){
selections[["teamEfforts"]] =
newEffortstable$effortNo[which(newEffortstable$team %in% teamSelect)]
}else{
selections[["teamEfforts"]] = newEffortstable$effortNo
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下NA
和NULL
和" "
并不断收到“如果错误:参数长度为零”
if(!missing(dateSelect)){
if(!dateSelect== "NA"){
selections[["dateEfforts"]] =
newEffortstable$effortNo[which(newEffortstable$date == dateSelect)]
}else{
selections[["dateEfforts"]] = newEffortstable$effortNo
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Jor*_*eys 11
您还没有尝试过一种选择:检查长度。如果没有给出日期,则dateInput
返回一个空Date
向量,如下例所示。
所以你可以检查if(length(input$dateSelect) == 0)
,但这不是最可靠的选择。为了避免这种情况,你必须检查所有的可能性(即NULL
,NA
,""
,numeric(0)
等),您可以使用函数isTruthy()
,如下面的例子:
shinyApp(
ui = fluidPage(
dateInput("dateSelect","Date"),
verbatimTextOutput("out"),
textOutput("text")
),
server = function(input,output,session){
output$text <- renderText({
if(!isTruthy(input$dateSelect)){
"NO DATE"
} else {
paste("The chosen date is:",input$dateSelect)
}
})
output$out<- renderPrint({str(input$dateSelect)})
}
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4240 次 |
最近记录: |