У меня есть кнопка, связанная с наблюдаемым событием. Кнопка просто загружает электронную таблицу Excel, а затем загружает ее в виде информационного кадра. У меня есть три из этих кнопок. Каждый делает одно и то же. Я хотел бы создать функцию, которая выполняет загрузку, чтобы мне не приходилось определять ее два раза. Я просто не могу понять, как создать функцию, которая позволяет мне делать это в Shiny.
library(shiny)
library(shinydashboard)
library(shinyjs)
library(readxl)
ui <- fluidPage(
titlePanel("My button issue"),
mainPanel(
box(status = "primary", solidHeader = TRUE,collapsible = T,collapsed=FALSE,title = "A. Upload data",
fileInput("pathology",label="",multiple = FALSE),br()),
box(status = "primary", solidHeader = TRUE,collapsible = T,collapsed=FALSE,title = "B. Upload data",
fileInput("FileIn_endoscopy",label="",multiple = FALSE),br())
)
)
server <- function(input, output) {
observe({
inFile_path <- input$pathology
if (!is.null(inFile_path)) {
dataFile <- read_excel(inFile_path$datapath, sheet=1)
RV2$data<-data.frame(dataFile, stringsAsFactors=FALSE)
enable("textPrepPath")
}
else{disable("textPrepPath")}
})
observe({
inFile_endoscopy <- input$FileIn_endoscopy
if (!is.null(inFile_endoscopy)) {
dataFile <- read_excel(inFile_endoscopy$datapath, sheet=1)
RV$data<-data.frame(dataFile, stringsAsFactors=FALSE)
enable("textPrep")
}
else{disable("textPrep")}
})
}
# Run the application
shinyApp(ui = ui, server = server)