r блестящий - отобразить фрейм данных после загрузки - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь создать приложение для записи записей в R блестящий.Я использовал R некоторое время, но я новичок в блестящей.Моя проблема в том, что я пытаюсь понять, как отобразить файл, который я загружаю через fileInput.Мой код ниже.

library(shiny)
library(shinydashboard)

пользовательский интерфейс

ui <- dashboardPage(
  dashboardHeader(title = "Record Linkage App"),
  dashboardSidebar(
    sidebarMenu(
      ## Tab 1 -- Specify Task
      menuItem("Select Task And Upload Files", tabName = "task", icon = 
    icon("file-text-o")),
  ## Tab 2 -- View Raw Data Files
  menuItem("View Raw Data", tabName = "raw", icon = icon("file-text-o")),
  ## Tab 3 -- View Processed Data Files
  menuItem("View Processed Data", tabName = "processed", icon = icon("file-text-o")),
  ## Tab 4 -- Select Training Set
  menuItem("Select Training Set", tabName = "mltrain", icon = icon("file-text-o")),
  ## Tab 5 -- View Weight & Probabilities (choose which chart to view or both?)
  menuItem("Visualize Distributions", tabName = "distributions", icon = icon("bar-chart-o")),
  ## Tab 6 -- View Results (review, match and trash files--need to be able to choose dataset)
  ## Want to be able to add checkboxes to select rows for inclusion in deletion later on
  menuItem("View Result Files", tabName = "fileview", icon = icon("file-text-o"))

)), # close dashboard sidebar

  #### Dashboard Body starts here

  dashboardBody(
    tabItems(
  ### Specify Task & Upload Files Tab
  tabItem(tabName = "task",
          radioButtons("task", "Select a Task:", c("Frame Deduplication", "Frame Record Linkage")),
          fileInput("selection", "Upload Files:", multiple = T, 
                    accept = c(".xls", "text/csv", "text/comma-separated-values, text/plain", ".csv")),
          helpText(paste("Please upload a file.  Supported file types are:  .txt, .csv and .xls"))

          ), # close first tabItem

  tabItem(tabName = "raw",
          helpText(paste("This tab displays the raw, unprocessed data frames selected in the previous tab.")),
          mainPanel(
            tableOutput("contents")

          )

) # close tabItems

  ) # close dashboardBody
) #close dashboardpage

)

сервер

server <- function(input, output, session) {
   output$contents <- renderTable({
      req(input$file1)
      read.csv(input$file1$datapath)

  })
}

shinyApp(ui, server)

Я хотел бы иметь возможность отображатьтаблица во вкладке «сырая».

Мой вопрос: 1. Если я просто хочу отобразить таблицу, нужно ли это reactive?
2. Как input$file1$datapath входит в renderTable?

Любые предложения или советы будут оценены.Спасибо.

1 Ответ

1 голос
/ 06 апреля 2019

Я думаю, что вы воспринимаете документацию слишком буквально: вы должны ссылаться на input$selection, а не input$file1.Я изменил ваш серверный компонент к этому, и он работал:

server <- function(input, output, session) {
  output$contents <- renderTable({
    req(input$selection)
    read.csv(input$selection$datapath)
  })
}

Кстати: хотя и не вредит вещам, вы используете mainPanel, который обычно используется в приложении, не являющемся приборной панелью, вместе с shiny::sidebarLayout,Так как вы используете shinydashboard, это не нужно, и вы можете уменьшить последний tabItem до

      tabItem(tabName = "raw",
              helpText(paste("This tab displays the raw, unprocessed data frames selected in the previous tab.")),
              tableOutput("contents")
              )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...