WedX - журнал о программировании и компьютерных науках

Ошибка в tagAssert при создании блестящей панели инструментов

Я делаю панель инструментов Shiny и получаю эту ошибку:

Error in tagAssert(body, type = "div", class = "content-wrapper") : 
  Expected tag to be of type div

И я понятия не имею, что это значит. Гугление мне ничего не дает. У меня есть панель инструментовHeader, панель инструментовБоковая панель, панель инструментов. Вот полный код, потому что я понятия не имею, где ошибка. Приложение Shiny работает нормально, просто ломается его установка в приборную панель.

library(shinydashboard)

shinyApp(ui = dashboardPage(
  #Header
  dashboardHeader(title = "Basic dashboard"),

  #Sidebar
  dashboardSidebar(
    selectInput("dataset",
                "Pick a Project",
                choices = c("ALTTobacco - 5/10/17 through 6/11/17",
                            "BehavioralFactors - 2/13/17 through 3/15/17",
                            "CobbParks - 4/11/16 through 5/5/16", 
                            "CobbSeniors - 3/16/17 through 5/4/17", 
                            "DDW-16 - 6/21/16 through 6/29/16", 
                            "DDW-17 - 6/19/17 through 6/22/17", 
                            "DDW-18 - 7/9/18 through 7/13/18", 
                            "FortValley2017 - 7/19/17 through 9/10/17", 
                            "Fulton2016 - 8/15/16 through 10/24/16", 
                            "Fulton2018 - 2/19/18 through 3/17/18", 
                            "Habitat2016 - 10/3/16 through 10/12/16", 
                            "JohnsCreek - 4/5/17 through 5/22/17", 
                            "OhioFamily2016 - 9/12/16 through 10/1/16", 
                            "WrightDiabetes - 11/21/16 through 1/22/17"),
                selected = "ALTTobacco")
  ),
  sidebarMenu(
    menuItem("Dashboard", tabName = "dashboard"),
    menuItem("Different Projects", tabName = "project")
    ),

  #Body
  dashboardBody(tabItems(
    # First tab content
    tabItem(tabName = "dashboard",
            fluidRow(
              plotOutput("distPlot")
             )
            ),
# Second tab content
    tabItem(tabName = "project",
            fluidRow(
              plotoutput("distPlot2"),
              plotOutput("distPlot3"),
              plotOutput("distPlot4"),
              plotOutput("distPlot5")
            ))
    )
  )

),
server = function(input, output) {

  datasetInput <- reactive({
    switch(input$dataset,
           "ALTTobacco - 5/10/17 through 6/11/17" = ALTTobacco,
           "BehavioralFactors - 2/13/17 through 3/15/17" = BehavioralFactors,
           "CobbParks - 4/11/16 through 5/5/16" = CobbParks, 
           "CobbSeniors - 3/16/17 through 5/4/17" = CobbSeniors, 
           "DDW-16 - 6/21/16 through 6/29/16" = DDW16, 
           "DDW-17 - 6/19/17 through 6/22/17" = DDW17, 
           "DDW-18 - 7/9/18 through 7/13/18" = DDW18, 
           "FortValley2017 - 7/19/17 through 9/10/17" = FortValley2017, 
           "Fulton2016 - 8/15/16 through 10/24/16" = Fulton2016, 
           "Fulton2018 - 2/19/18 through 3/17/18" = Fulton2018, 
           "Habitat2016 - 10/3/16 through 10/12/16" = Habitat2016, 
           "JohnsCreek - 4/5/17 through 5/22/17" = JohnsCreek, 
           "OhioFamily2016 - 9/12/16 through 10/1/16" = OhioFamily2016, 
           "WrightDiabetes - 11/21/16 through 1/22/17" = WrightDiabetes)
  })


  output$distPlot <- renderPlot({
    dataset <- datasetInput() 

    my.bp <<-ggplot(data=surv, aes(y= Completes, x=ProjectName, fill=ProjectName ) ) # Creates boxplots
    my.bp <- my.bp + geom_boxplot() # Adds color
    my.bp <- my.bp + ggtitle("Distribution of Completed Surveys by Project") # Adds a title
    my.bp <- my.bp +  ylab("Completed Surveys per Day") + xlab("Project") # Adds kaveks
    my.bp <- my.bp + coord_flip()
    my.bp

  })
  output$distPlot2 <- renderPlot({
    dataset <- datasetInput()
    plot(dataset$Date2, dataset$Completes, 
         xlab = "Number of Days Since Beginning Survey", 
         ylab = "Number of Completed Surveys Per Day",
         title = "Completed Surveys by Number of Days Since Survey Began")
    lines(dataset$Date2, dataset$Completes)
    abline(h=mean(dataset$Completes, na.rm=TRUE), col="red")
  })
  output$distPlot3 <- renderPlot({
    dataset <- datasetInput()
    plot(dataset$Dials, dataset$Completes,
         xlab = "Number of Dials Made in a Day",
         ylab = "Number of Completed Surveys per Day",
         title = "Completed Surveys Compared to Dials Made per Day")
    lines(dataset$Dials[order(dataset$Dials)], dataset$Completes[order(dataset$Dials)])
    abline(h=mean(dataset$Completes, na.rm=TRUE), col="red")
  })
  output$distPlot4 <- renderPlot({
    dataset <- datasetInput()
    plot(dataset$Date2, dataset$Dials,
         xlab = "Number of Days Since Beginning Survey",
         ylab = "Number of Dials Made in a Day",
         tite = "Number of Dials Made per Day Since Survey Began")
    lines(dataset$Date2[order(dataset$Date2)], dataset$Dials[order(dataset$Date2)])
    abline(h=mean(dataset$Dials, na.rm=TRUE), col="red")
  })
  output$distPlot5 <- renderPlot({
    dataset <- datasetInput()
    dataset$DialRatio <- dataset$Dials / dataset$Intervierwers
    plot(dataset$Date2, dataset$DialRatio,
         xlab = "Number of Days Since Beginning Survey",
         ylab = "Ratio of Dials Made over Interviewers Present",
         title = "Ratio of Dials Made to Interviewers Present Since Survey Began")
    lines(dataset$Date2[order(dataset$Date2)], dataset$DialRatio[order(dataset$Date2)])
    abline(h=mean(dataset$DialRatio, na.rm=TRUE), col="red")
  })
}

)
31.07.2018

Ответы:


1
  • Ваш sidebarMenu() находится за пределами dashboardSidebar()
  • Вы написали plotoutput() вместо plotOutput

ВАШ КОД (ОБНОВЛЕНО):

library(shinydashboard)
library(shiny)

shinyApp(ui = dashboardPage(
  #Header
  dashboardHeader(title = "Basic dashboard"),

  #Sidebar
  dashboardSidebar(
    selectInput("dataset",
                "Pick a Project",
                choices = c("ALTTobacco - 5/10/17 through 6/11/17",
                            "BehavioralFactors - 2/13/17 through 3/15/17",
                            "CobbParks - 4/11/16 through 5/5/16", 
                            "CobbSeniors - 3/16/17 through 5/4/17", 
                            "DDW-16 - 6/21/16 through 6/29/16", 
                            "DDW-17 - 6/19/17 through 6/22/17", 
                            "DDW-18 - 7/9/18 through 7/13/18", 
                            "FortValley2017 - 7/19/17 through 9/10/17", 
                            "Fulton2016 - 8/15/16 through 10/24/16", 
                            "Fulton2018 - 2/19/18 through 3/17/18", 
                            "Habitat2016 - 10/3/16 through 10/12/16", 
                            "JohnsCreek - 4/5/17 through 5/22/17", 
                            "OhioFamily2016 - 9/12/16 through 10/1/16", 
                            "WrightDiabetes - 11/21/16 through 1/22/17"),
                selected = "ALTTobacco"),
    sidebarMenu(
      menuItem("Dashboard", tabName = "dashboard"),
      menuItem("Different Projects", tabName = "project")
    )
  ),

  #Body
  dashboardBody(tabItems(
    # First tab content
    tabItem(tabName = "dashboard",
            fluidRow(
              plotOutput("distPlot")
            )
    ),
    # Second tab content
    tabItem(tabName = "project",
            fluidRow(
              plotOutput("distPlot2"),
              plotOutput("distPlot3"),
              plotOutput("distPlot4"),
              plotOutput("distPlot5")
            ))
  )
  )

),
server = function(input, output) {

  datasetInput <- reactive({
    switch(input$dataset,
           "ALTTobacco - 5/10/17 through 6/11/17" = ALTTobacco,
           "BehavioralFactors - 2/13/17 through 3/15/17" = BehavioralFactors,
           "CobbParks - 4/11/16 through 5/5/16" = CobbParks, 
           "CobbSeniors - 3/16/17 through 5/4/17" = CobbSeniors, 
           "DDW-16 - 6/21/16 through 6/29/16" = DDW16, 
           "DDW-17 - 6/19/17 through 6/22/17" = DDW17, 
           "DDW-18 - 7/9/18 through 7/13/18" = DDW18, 
           "FortValley2017 - 7/19/17 through 9/10/17" = FortValley2017, 
           "Fulton2016 - 8/15/16 through 10/24/16" = Fulton2016, 
           "Fulton2018 - 2/19/18 through 3/17/18" = Fulton2018, 
           "Habitat2016 - 10/3/16 through 10/12/16" = Habitat2016, 
           "JohnsCreek - 4/5/17 through 5/22/17" = JohnsCreek, 
           "OhioFamily2016 - 9/12/16 through 10/1/16" = OhioFamily2016, 
           "WrightDiabetes - 11/21/16 through 1/22/17" = WrightDiabetes)
  })


  output$distPlot <- renderPlot({
    dataset <- datasetInput() 

    my.bp <<-ggplot(data=surv, aes(y= Completes, x=ProjectName, fill=ProjectName ) ) # Creates boxplots
    my.bp <- my.bp + geom_boxplot() # Adds color
    my.bp <- my.bp + ggtitle("Distribution of Completed Surveys by Project") # Adds a title
    my.bp <- my.bp +  ylab("Completed Surveys per Day") + xlab("Project") # Adds kaveks
    my.bp <- my.bp + coord_flip()
    my.bp

  })
  output$distPlot2 <- renderPlot({
    dataset <- datasetInput()
    plot(dataset$Date2, dataset$Completes, 
         xlab = "Number of Days Since Beginning Survey", 
         ylab = "Number of Completed Surveys Per Day",
         title = "Completed Surveys by Number of Days Since Survey Began")
    lines(dataset$Date2, dataset$Completes)
    abline(h=mean(dataset$Completes, na.rm=TRUE), col="red")
  })
  output$distPlot3 <- renderPlot({
    dataset <- datasetInput()
    plot(dataset$Dials, dataset$Completes,
         xlab = "Number of Dials Made in a Day",
         ylab = "Number of Completed Surveys per Day",
         title = "Completed Surveys Compared to Dials Made per Day")
    lines(dataset$Dials[order(dataset$Dials)], dataset$Completes[order(dataset$Dials)])
    abline(h=mean(dataset$Completes, na.rm=TRUE), col="red")
  })
  output$distPlot4 <- renderPlot({
    dataset <- datasetInput()
    plot(dataset$Date2, dataset$Dials,
         xlab = "Number of Days Since Beginning Survey",
         ylab = "Number of Dials Made in a Day",
         tite = "Number of Dials Made per Day Since Survey Began")
    lines(dataset$Date2[order(dataset$Date2)], dataset$Dials[order(dataset$Date2)])
    abline(h=mean(dataset$Dials, na.rm=TRUE), col="red")
  })
  output$distPlot5 <- renderPlot({
    dataset <- datasetInput()
    dataset$DialRatio <- dataset$Dials / dataset$Intervierwers
    plot(dataset$Date2, dataset$DialRatio,
         xlab = "Number of Days Since Beginning Survey",
         ylab = "Ratio of Dials Made over Interviewers Present",
         title = "Ratio of Dials Made to Interviewers Present Since Survey Began")
    lines(dataset$Date2[order(dataset$Date2)], dataset$DialRatio[order(dataset$Date2)])
    abline(h=mean(dataset$DialRatio, na.rm=TRUE), col="red")
  })
}

)
29.10.2018
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]