完成“R Projects for Dummies”并遇到错误消息

问题描述

正如标题所说。我输入的代码与书中的代码完全相同,但我遇到了以下错误消息:“闪亮::tabsetPanel(...,id=id,selected = selected) 中的错误:缺少参数,没有认值”

我不知道缺少什么。

代码如下:

library(shinydashboard)

ui<- dashboardPage(
    dashboardHeader(title= "Uniform distribution"),dashboardSidebar(),dashboardBody(
        fluidRow(
            column(width =6,Box(title = "Select a Number",solidHeader = TRUE,background = "yellow",status = "warning",width = NULL,height = 312,sliderInput(inputId = "number",label = "",value = 500,min = 25,max = 1000)),Box(
                    background= "light-blue",status ="primary",title = "Histogram",plotOutput("hist",height = 250))),column(width = 6,tabBox(
                       title ="Central Tendency",id ="tabs1",height = 120,width =NULL,tabPanel("Mean",h2(textoutput("meantext")),width=NULL),tabPanel("Median",h2(textoutput("mediantext")),),tabBox(
                       title ="Variability",id ="tabs2",tabPanel("Variance",h2(textoutput("vartext")),tabPanel("Standard Deviation",h2(textoutput("sdtext")),width=NULL))
        )
    )
))

server <- function(input,output){
    histdata <- reactive({runif(input$number,min=0,max = 1)})
    output$hist <- renderPlot({
        hist(histdata(),xlab = "Value",main= paste(input$number,"random values between 0 and 1"))
    })
    
    output$meantext <- renderText({
        paste("Mean =",round(mean(histdata()),3))})
    
    output$mediantext <- renderText({
        paste("Median =",round(median(histdata()),3))})
    
    output$vartext <- renderText({
        paste("Variance =",round(var(histdata()),3))})
    
    output$sdtext <- renderText({
        paste("Standard Deviation =",round(sd(histdata()),3))})
}

shinyApp(ui,server)

解决方法

您在 tabsetPanels 之外有 tabPanels。您的 tabPanels 需要包裹在 tabsetPanel()navBarPage()

见下文:

ui<- dashboardPage(
  dashboardHeader(title= "Uniform Distribution"),dashboardSidebar(),dashboardBody(
    fluidRow(
      column(width =6,box(title = "Select a Number",solidHeader = TRUE,background = "yellow",status = "warning",width = NULL,height = 312,sliderInput(inputId = "number",label = "",value = 500,min = 25,max = 1000)),box(
               background= "light-blue",status ="primary",title = "Histogram",plotOutput("hist",height = 250))),column(width = 6,tabBox(
               title ="Central Tendency",id ="tabs1",height = 120,width =NULL,tabsetPanel(
                 tabPanel("Mean",h2(textOutput("meantext")),width=NULL),tabPanel("Median",h2(textOutput("mediantext")),width=NULL)
               )
               
             ),tabBox(
               title ="Variability",id ="tabs2",tabsetPanel(
                 tabPanel("Variance",h2(textOutput("vartext")),tabPanel("Standard Deviation",h2(textOutput("sdtext")),width=NULL)
               )
               )
      )
    )
  ))