Введите 2 таблицы в R блестящей приборной панели
Я хочу иметь положение для ввода 2 таблиц, а именно обучать и тестировать для дальнейшего анализа в R блестящей панели инструментов.
Я новичок в Shiny Dashboard, пожалуйста, помогите мне решить эту проблему.
Спасибо баладжи
1 ответ
Ну вот. Предполагая, что ваши файлы имеют формат, который вы можете прочитать с помощью read.table(), этот пример станет для вас рабочим началом.
Ты можешь использовать fileInput()
для ввода файлов это может быть любой формат из.csv, .txt или.RData или любой другой тип файла, который вам нужен.
Ты используешь fileInput("Table1",...)
в пользовательском интерфейсе. А затем в функции server() вашего приложения вы можете получить доступ к входным файлам: input$Table1
, В частности, файл загружен и сохранен во временном местоположении, к которому вы можете получить доступ input$Table1$datapath
,
С этим расположением файла вы сможете делать все, что хотите, с данными, которые теперь загружаются в ваше блестящее приложение. В приведенном ниже примере я читаю только данные, используя read.table()
а затем показать данные в двух таблицах данных в пользовательском интерфейсе.
## app.R ##
library(shiny)
library(shinydashboard)
# A minimal dashboard page
# Sidebar for file inputs
# Main body to show 2 datatables
ui <- dashboardPage(
dashboardHeader(title = "Two tables for further analysis"),
dashboardSidebar(
h2("fileInput() to upload files"),
fileInput("Table1", "Input file for train data"),
fileInput("Table2", "Input file for test data")
),
# A body for two datatables to show the data input
dashboardBody(
fluidPage(
fluidRow(
column(width=6,
DT::dataTableOutput("Train")),
column(width=6,
DT::dataTableOutput("Test"))
)
)
))
server <- function(input, output) {
output$Train <- DT::renderDataTable({
# NULL if no input given
if (is.null(input$Table1)) return(NULL)
# Else... read table (input$Table1 is a list of componenent - the 'datapath' field is the temp file location)
read.table(input$Table1$datapath) # Assuming you have a file to read with read.table()
})
# Using output$Test - we can use datatableOutput("Test") to show the datatable in the UI
output$Test <- DT::renderDataTable({
# NULL if no input given
#
if (is.null(input$Table2)) return(NULL)
# Else... read table (input$Table1 is a list of componenent - the 'datapath' field is the temp file location)
read.table(input$Table2$datapath) # Assuming you have a file to read with read.table()
})
# You can of course read the data for your own purpose
# Not for a datatable, but to do follow-up analysis
#
# Further, you can also upload .RData files for example - or any other file.
}
# Run the shiny app
shinyApp(ui, server)
Пожалуйста, будьте немного конкретнее в следующий раз и приведите пример того, что вы уже попробовали. Я понятия не имею, с каким форматом данных вы пытаетесь работать... Надеюсь, это поможет!