R Shiny: проблема с именем выхода и для цикла - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь назначить блестящее имя выхода R в цикле for. Мой код разделил текст и проверил для каждого элемента, содержит ли он слово «таблица», он часто выглядит как «таблица1» и «таблица2». Затем выполняется поиск соответствующего фрейма данных по номеру таблицы с помощью функции fun_extract_table (расположенной в файле main.R, файл не требуется показывать). Кадр данных отправляется в renderTable. Но по какой-то причине в блестящем приложении оно всегда возвращает один и тот же фрейм данных и последнюю итерацию цикла.

Вот код.

Server.R

library(shiny)
source("main.R", local = TRUE)
text_separator <- "/r/n"
shinyServer(function(input, output, session) {
observeEvent(input$do, {
    splited_text <- strsplit(my_text, text_separator)
    responses_tags <- tagList()
    for(i in splited_text){
     check_elem <- substr(i, 1, 5)
     if(check_elem == "table"){
        num_table <-  as.numeric(substr(i, 6, nchar(i)))
        extracted_table <- fun_extract_table(num_table)
        cur_table <- paste0("my_table", num_table)
        print(cur_table)
        print(extracted_table)
        output[[cur_table]] <- renderTable(
          return(extracted_table)
        )
        responses_tags <- tagList(responses_tags, tableOutput(cur_table))
        print(responses_tags)
      }else{
        responses_tags <- tagList(responses_tags, shiny::tags$p(HTML(i)))
      }
    }
    output$docx_display <- renderUI(
      responses_tags
    )
  })
})

Ui.R

library(shiny)

shinyUI(
  fluidPage(
    actionButton("do", "Ok")
    uiOutput("docx_display")
  )
)

Для печати я получил текущий результат:

[1] "my_table1"
  Mon tableau TEST Test
1             test TesT
2             tESt TTTT
<div id="my_table1" class="shiny-html-output"></div>
[1] "my_table2"
  Mon tableau 2 TEST 2 Test 2
1               Test 2 TesT 2
2               tESt 2 TTTT 2
<div id="my_table1" class="shiny-html-output"></div>
<div id="my_table2" class="shiny-html-output"></div>

Я получил другой результат для блестящего приложения:

Shiny app results

Не могли бы вы помочь мне и объяснить, почему у меня нет таблицы 1 в блестящем приложении, пожалуйста?

С уважением!

...