想知道是否有人可以帮助我。
我想在已经存在的数据框中输入额外的数据列。
我已经形成了我闪亮的应用程序的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)