我有下面的shiny个应用程序,其中的数据集是由最小和最大日期子集.在我的约会中,我有一些NAS值,我想把它们作为我的selectInput()中的 Select .但是,我不能使子集工作.

基本上应该有4个 case .未 Select NA的一个、同时为NA的一个、仅最小为NA的一个和仅最大为NA的一个

library(shiny)
library(DT)

# Creating a sample dataframe
dates <- as.Date(c("2023-01-01", "2023-02-01", NA, "2023-04-01", "2023-05-01"))
names <- c("Alice", "Bob", "Charlie", "David", "Eve")

# Combine them into a dataframe
df <- data.frame(Date = dates, Name = names)

# Generate unique dates sorted in ascending order, including NA
unique_dates <- sort(unique(df$Date), na.last = TRUE)

# Creating a Shiny app
ui <- fluidPage(
  titlePanel("Subset Data by Date Range"),
  sidebarLayout(
    sidebarPanel(
      selectInput("start_date", "Start Date", choices = unique_dates, selected = unique_dates[1]),
      selectInput("end_date", "End Date", choices = unique_dates, selected = unique_dates[length(unique_dates)])
    ),
    mainPanel(
      dataTableOutput("table")
    )
  )
)

server <- function(input, output) {
  output$table <- renderDataTable({
    # Subset the dataframe based on the selected date range
    subset_df <- subset(df, Date >= input$start_date & Date <= input$end_date)
    datatable(subset_df)
  })
}

shinyApp(ui = ui, server = server)

推荐答案

您可以执行以下操作:

  output$table <- renderDataTable({
    # Subset the dataframe based on the selected date range
    if (input$start_date  == "NA" & input$end_date == "NA") {
      subset_df <- subset(df, is.na(Date))
    } else if (input$start_date == "NA") {
      subset_df <- subset(df, is.na(Date) | Date <= input$end_date)
    } else if (input$end_date == "NA") {
      subset_df <- subset(df, Date >= input$start_date | is.na(Date))
    } else {
      subset_df <- subset(df, Date >= input$start_date & Date <= input$end_date)
    }
    datatable(subset_df)
  })

selectInput中的值是字符串.

看看shiny::dateRangeInput,使用起来可能会更方便.

R相关问答推荐

无法在我的情节中表现出显着的差异

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

将复杂的组合列表转换为数据框架

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

获取一个数据库框架的摘要,该数据库框架将包含一列数据库框架,

在ggplot2中更改小提琴情节的顺序

如何将Which()函数用于管道%>;%

R:如果为NA,则根据条件,使用列名模式将缺少的值替换为另一列中的值

从R中发出的咕噜声中的BUG?

如何使用同比折线图中的个别日

将多个变量组合成宽格式

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

基于R中的辅助向量中的值有条件地连接向量中的字符串

构建一个6/49彩票模拟系统

是否从列中删除★符号?

抽样变换-REXP与RWEIBUR

将边列表转换为路径长度列表

无法保存gglot的所有pdf元素

在不带max()的data.table中按组查找最后一个元素

R data.设置函数&;连接中的列值而不使用for循环的表方法?