#r #shiny
#r #блестящий
Вопрос:
Я могу создать структуру для приема входных данных от пользователя, используя опцию fileInput. Я хочу просмотреть тот же файл, что и выходные данные.
library(shiny)
ui<-fluidPage(
fileInput(inputId = "ABC", label="Input File", multiple = FALSE, accept = NULL,
width = NULL, buttonLabel = "Browse...",
placeholder = "No file selected"),
dataTableOutput('XX')
)
server<-function(input, output){
output$XX<-renderDataTable(ABC)
#output$XX<-renderDataTable(iris_2)
}
shinyApp(ui, server)
Комментарии:
1. смотрите пример в
?fileInput
Ответ №1:
В серверной части приложения измените вывод на:
output$XX<-renderDataTable(input$ABC)
Таким образом, функция знает, какой ввод она должна использовать.
Комментарии:
1. Это не сработает.
input$ABC
это не таблица. Перед этим нужно прочитать файл.
Ответ №2:
Решение с actionButton
и observeEvent
контролем.
library(shiny)
library(DT)
ui <- fluidPage(
fileInput(inputId = "ABC", label = "Input File", multiple = FALSE, accept = NULL,
width = NULL, buttonLabel = "Browse...",
placeholder = "No file selected"),
actionButton(inputId = "submit", label = "Submit"),
dataTableOutput("XX")
)
server <- function(input, output) {
observeEvent( input$submit, {
data <- read.csv(input$ABC$datapath, header = TRUE, sep = ",")
output$XX <- renderDataTable({
datatable(data)
})
})
}
shinyApp(ui, server)