我创建了一个闪亮的应用程序,以便在我单击这些按钮时节省开始时间和结束时间。我有三个按钮:Start
,End
和Download
,此应用旨在节省点击Start
和End
按钮然后保存的时间单击.csv
按钮时Download
中的文件。但它节省了单击“下载”按钮的时间。请帮我妥善保存不同的时间。
library(shiny)
shinyUI(fluidPage(
titlePanel("Header"),
sidebarLayout(
sidebarPanel(
actionButton("start", "Start"),
tags$br(),
actionButton("end", "End"),
tags$br(),
downloadButton("downloadData", "Download")
),
mainPanel(
)
)
))
shinyServer(function(input, output) {
startTime <- eventReactive(input$start,{
Sys.time()
})
endTime <- eventReactive(input$end,{
Sys.time()
})
data <- reactive({data.frame(start = startTime(),
end = endTime())})
output$downloadData <- downloadHandler(
filename = function() {
"download.csv"
},
content = function(file) {
write.csv(data(), file, row.names = F)
}
)
})
答案 0 :(得分:1)
使用全局变量可行。下面的示例(编辑为使用每会话全局变量)。
library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("Header"),
sidebarLayout(
sidebarPanel(
actionButton("start", "Start"),
tags$br(),
actionButton("end", "End"),
tags$br(),
downloadButton("downloadData", "Download")
),
mainPanel(
)
)
))
server <- shinyServer(function(input, output) {
starttime <- NULL
endtime <- NULL
observeEvent(input$start, {
starttime <<- Sys.time()
})
observeEvent(input$end, {
endtime <<- Sys.time()
})
output$downloadData <- downloadHandler(
filename = function() {
"download.csv"
},
content = function(file) {
data <- data.frame(start=starttime, end=endtime)
write.csv(data, file, row.names = F)
}
)
})
shinyApp(ui = ui, server = server)