Я не могу отобразить таблицу данных и разрешить пользователям загружать эту таблицу данных с помощью блестящего приложения. Вот мой MWE
UI:
ui <- fluidPage(
# Application title
titlePanel("Tool v0.03"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
fileInput("dataset", "Choose CSV File",
multiple = TRUE,
accept = c("text/csv",
"text/comma-separated-values,text/plain",
".csv")),
helpText(em("Note:Select all the inputs and click on button as given below to exectute the app")),
checkboxInput("header", "Header", TRUE),
radioButtons("sep", "Separator",
choices = c(Comma = ",",
Semicolon = ";",
Tab = "\t"),
selected = ","),
selectInput("select", "Select columns to display", c('col1', 'col2'), multiple = TRUE),
actionButton("update", "Update Data set", class = "btn-primary",style='padding:4px; font-size:120%')
),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel(h2("Random Stratified Sample"), DT::dataTableOutput('out.Sample'),
fluidRow(downloadButton('SampleDownload', "Download sample data"))) # in a tabitem)
)
)
)
)
Сервер:
server <- function(session, input, output) {
data <- reactive({
req(input$dataset)
Cleaning_Fun(read.csv(input$dataset$datapath, header = input$header,sep =
input$sep))
})
filtereddata <- eventReactive({
input$update
data()
}, {
req(data())
if(is.null(input$select) || input$select == "")
data() else
data()[, colnames(data()) %in% input$select]
})
observeEvent(data(), {
updateSelectInput(session, "select", choices=colnames(data()))
})
output$out.Sample <-
DT::renderDataTable(DT::datatable((filtereddata())
))
output$SampleDownload <- downloadHandler(
filename = function() {
paste('Sample_data-', Sys.Date(), '.csv', sep = '')
},
content = function(file){
write.csv(filtereddata()[input[["SampleData_rows_all"]], ],file)
}
)
}
Этот пример позволяет пользователю отображать и загружать загруженный им набор данных. К сожалению, файл содержит только заголовок таблицы данных. Не уверен, где это идет не так, но любая помощь приветствуется
Спасибо,
John