Как я могу вставить данные, полученные из функции, использующей цикл for, в таблицу данных в блестящем? - PullRequest
1 голос
/ 01 ноября 2019

Я делаю блестящий интерфейс, и в настоящее время у меня есть проблема с таблицей данных.

Это функция, с которой получают данные, которые мне нужно вставить в таблицу данных (server.R)

  allElites <- length(iraceResults$allElites)

  last <- length(iraceResults$iterationElites)
  for(i in 1:last)
  {
    bestConfigurationID <- iraceResults$iterationElites[i]
    bestConfiguration <- getConfigurationById(iraceResults, ids=bestConfigurationID)
    print(bestConfiguration)
    output$dataTableElites <- DT::renderDataTable(
      bestConfiguration
    )
  }

Теперь это мой ui.R


library(shiny)
library(shinythemes)
library(shinydashboard)
library(DT)
library(ggplot2)
library(irace)

skin <- Sys.getenv("DASHBOARD_SKIN")
skin <- tolower(skin)
if (skin == "")
  skin <- "black"

header <- dashboardHeader(
  title="IRACE"
) 
sidebar <- dashboardSidebar(
        sidebarMenu(
          menuItem("Modules", tabName ="modules",
                   menuSubItem("Setup", tabName="setup"),
                   menuSubItem("Runtime", tabName="runtime"),
                   menuSubItem("Reports", tabName="reports")
          ),
          menuItem("Summary", tabName = "summary", icon = icon("dashboard")),
          menuItem("Performance", icon = icon("th"), tabName = "performance"),
          menuItem("Frequency",tabName = "frequency" ,icon = icon("bar-chart-o")),
          menuItem("Back to Setup", icon = icon("file-code-o"), tabName = "target")
        )
)
  body <- dashboardBody(
    tabItems(
      tabItem(tabName = "summary",
        fluidRow(
          box(title="Summary",
              status="primary",
              "Num of Iterations: ",
              textOutput("numIterations"),
              "Num of Configurations",
              textOutput("numConfigurations"),
              "Num of Instances",
              textOutput("numInstances"),
              "Num of Elites Configurations",
              textOutput("numElitesConfigurations")
          )
        ),
        fluidRow(
          box(title = "Elite Configurations",
              status = "primary",
              uiOutput("iterationSeleceted"),
              DT::dataTableOutput("dataTableElites"),
              width = 15
          )
        ),
        fluidRow(
          box(title="All Configurations",
              status="primary",
              DT::dataTableOutput("dataTableAllConfigurations"),
              width = 15
          )
        )
    ),
    tabItem(tabName = "performance",
      fluidRow(
        box(title="Performance",
            status="primary"
        )
      )
    ),
    tabItem(tabName = "frequency",
      fluidRow(
        box(title = "Frequency",
            status = "primary",
            h1("Sampling Frequency"),
            plotOutput("frecuencyParameters"),
            h1("Parallel Coordinates"),
            plotOutput("paralelCoordinatesCandidates")
        )
      )
    )
  )
)




ui <- dashboardPage(header,sidebar, body, skin = skin)

Как вы можете видеть, я сделал print () на server.R для переменной, которая содержит данные, которые мне нужныпокажите в таблице данных, и это то, что возвращает меня.

.ID. algorithm localsearch alpha beta  rho  ants q0 rasrank elitistants nnls dlb .PARENT.
7    7         as          0     4.96  0.81 0.27 32 NA      NA          NA   NA <NA>    NA
.ID. algorithm localsearch alpha beta  rho  ants q0 rasrank elitistants nnls dlb .PARENT.
278  278       as          3     4.54  2.78 0.37 59 NA      NA          NA   26   0       7
.ID. algorithm localsearch alpha beta  rho  ants q0 rasrank elitistants nnls dlb .PARENT.
73   73        as          3     0.61  2.29 0.66 34 NA      NA          NA   22   1       NA
.ID. algorithm localsearch alpha beta  rho  ants q0 rasrank elitistants nnls dlb .PARENT.
375  375       eas         1     3.31  6.99 0.58 44 NA      NA         277    9   0       290
.ID. algorithm localsearch alpha beta  rho  ants q0 rasrank elitistants nnls dlb .PARENT.
375  375       eas         1     3.31  6.99 0.58 44 NA      NA         277    9   0       290

Но что происходит, так это то, что в DataTable он показывает только последнюю конфигурацию, которая имеет идентификатор 375

Таблица элиты

Как мне вставить всю информацию, которую функция возвращает мне в таблицу данных?

Заранее большое спасибо

...