在R Shiny的数据框中输入和检索日期输入

时间:2018-12-04 11:52:42

标签: r shiny

想知道是否有人可以帮助我。

我想在已经存在的数据框中输入额外的数据列。

我已经形成了我闪亮的应用程序的UI部分,其中显示了操纵的数据框以及一个在需要时输入日期输入的字段。 我的要求是要有一个日期选择器输入,当我单击“保存”时,我想将新列添加到另一个数据框中,然后再进行处理。 以下是针对我的问题的示例代码:(我使用了stackoverflow答案中的示例代码:指向该答案的链接:https://stackoverflow.com/a/40124949/10588172

rm(list = ls())
library(DT)
library(shiny)
library(shinyBS)
library(shinyjs)
library(shinydashboard)

# This function will create the buttons for the datatable, they will be unique
shinyInput <- function(FUN, len, id, ...) {inputs <- character(len)
for (i in seq_len(len)) {
  inputs[i] <- as.character(FUN(paste0(id, i), ...))}
inputs
}

ui <- dashboardPage(
  dashboardHeader(title = "Simple App"),
  dashboardSidebar(
    sidebarMenu(id = "tabs",
                menuItem("Menu Item 1", tabName = "one", icon = icon("dashboard"))
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName = "one",h2("Datatable"),
              DT::dataTableOutput('my_table'),
              actionButton('save', label = "save")
      )
    )
  )
)

server <- function(input, output, session) {
  my_data <- reactive({
    testdata <- mtcars
    as.data.frame(cbind(View = shinyInput(dateInput, nrow(testdata),'dte_', label = " " ),testdata))

    ## THE ABOVE HOWEVER DISPLAYS ONLY A TEXT FIELD RATHER A DATEPICKER
  })  
  output$my_table <- DT::renderDataTable(my_data(),selection = 'single',options = list(searching = FALSE,pageLength = 10),server = FALSE, escape = FALSE,rownames= FALSE)


  observeEvent(input$save,{
    DTE <- list()
    for(i in c(1:nrow(mtcars))){

      ## HOW DO i RETRIVE THE VALUES FROM THE INPUT FIELDS CORESPONDINGLY ??

      DTE[i] <- paste0("input$dte_",i)

    }
    newdf <- data.frame(cbind(mtcars, unlist(DTE)))
    #print(head(newdf))

  })


}
shinyApp(ui, server)

0 个答案:

没有答案