代码之家  ›  专栏  ›  技术社区  ›  SJB

在R闪亮仪表板中输入2个表格

  •  0
  • SJB  · 技术社区  · 6 年前

    我想在R shiny dashboard中输入两个表,即train和test,以便进一步分析。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Lodewic Van Twillert    6 年前

    给你。 假设您的文件的格式是可以用read读取的。table(),此示例将是您的工作起点。

    您可以使用 fileInput() 要输入文件,可以是中的任何格式。csv。txt或。RData或您需要的任何其他文件类型。

    您使用 fileInput("Table1",...) 在UI中。然后在应用程序的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)
    

    下次请更具体一点,并举例说明您已经尝试过的内容。 我不知道您正在尝试使用什么类型的数据格式。。。希望这有帮助!