Транспонирование пользовательских входных данных происходит очень медленно

#r #shiny

Вопрос:

Для моего блестящего приложения первым шагом является чтение csv-файла, введенного пользователем, и транспонирование некоторых его столбцов. Мне нужно поработать над этими перенесенными данными для остальной части моей работы. Когда я запустил код с таблицей данных размером 15000 х 28, для обработки потребовалось около 10 минут. Размер файла составляет всего 1 МБ. Есть ли более эффективный способ сделать это? Я действительно новичок в этом деле, поэтому любая помощь в этом будет очень полезной.

 library(shiny)
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput("file", "Choose observation precipitation CSV File", accept = ".csv"),
      checkboxInput("header", "Header", TRUE)
    ),
    mainPanel(
      tableOutput('transtab')
    )
  )
)
server <- function(input, output,session) {
output$transtab <- renderTable({
  infile = input$file
  if(is.null(infile))
    return(NULL)
  A <- read.csv(infile$datapath,header=input$header)
  t(as.matrix(A[,5:28]))
})
}
shinyApp(ui, server)
 

Комментарии:

1. t() на самом деле очень быстрая функция. Я бы предпочел думать, что shiny не любит отображать 15000 столбцов данных

2. Есть ли какой-нибудь другой способ? В зависимости от выбранной станции количество строк в некоторых случаях может превышать 15000. Мне нужно уметь с этим работать.

3. Как бы вы себе представили, как будет выглядеть такой массивный стол, отрисованный в блестящем приложении?

4. 15000 строк находятся в исходных данных, верно? Но после переноса это будет 15000 столбцов. Если вы хотите визуализировать таблицу с большим количеством строк, вы должны быть в порядке, но визуализация 15000 столбцов-это слишком много для вас

5. Кажется, теперь я понял. Я попробовал добавить график таблицы вместо таблицы, результаты быстрее. Спасибо