我希望有一个规定来输入2个表格,即在R闪亮的仪表板中进行训练和测试以进一步分析。
我是Shiny Dashboard的新手,请帮我解决这个问题。
由于 巴拉吉
答案 0 :(得分:0)
你走了。 假设您的文件采用read.table()读取的格式,此示例将为您提供一个有用的工作。
您可以使用fileInput()
输入文件,这可以是.csv,.txt或.RData中的任何格式或您需要的任何其他文件类型。
您在UI中使用fileInput("Table1",...)
。然后在应用程序的server()函数中,您可以通过input$Table1
访问输入文件。具体而言,文件将上载并保存在您可以使用input$Table1$datapath
。
使用此文件位置,您应该能够对现在上传到闪亮应用程序的数据执行任何操作。在下面的示例中,我只使用read.table()
读取数据,然后在UI中的两个数据表中显示数据。
## 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)
下次请更具体一点,举一个你已经尝试过的例子。 我不知道你正在尝试使用哪种类型的数据格式...希望这会有所帮助!