У меня проблема с доступом к данным в разных частях моей функции server (). Структура basi c выглядит примерно так:
server <- shinyServer(function(input, output) {
# get the data from a file obtained from a textInput in the ui
data <- reactive({
req(input$file)
file <- input$file$datapath
# process the file and return a new dataframe
})
output$head <- renderTable({
mydf <- data()
head(mydf)
})
output$tail <- renderTable({
mydf <- data()
tail(mydf)
})
})
Я бы не хотел дважды вызывать data (), но я не нашел способа сделать это.
Редактировать после комментария @ KentJohnson
Я пытаюсь добиться, чтобы пользователь выбрал файл для открытия, используя textInput
, и после открытия файла приложение должно выполнить некоторые действия. обработать и заполнить две таблицы в пользовательском интерфейсе. После этого пользователь выбирает некоторые другие действия, которые также требуют тех же данных.
Я хотел избежать необходимости дважды вызывать data()
, но я не нашел способа сделать это. Я предполагал, что каждый вызов будет означать чтение из файла каждый раз. Файл очень большой, так что это моя мотивация.