繁体   English   中英

R Shiny:max-min中的错误:二进制运算符的非数字参数

[英]R Shiny: Error in max - min : non-numeric argument to binary operator

我正在尝试创建一个简单的闪亮应用程序,用于在Amazon ec2上运行的rstudio内绘制直方图,以便将结果数据存储为.RData文件。 我仔细检查了一切。 看起来不错。 我还检查了数据类型:所有都是数字。

我的代码:

用户界面

    # shiny plots on top_docs data
library(shiny)
shinyUI(fluidPage(
 # Header title
  titlePanel(title = h4("Top doctors plots - a histograms", align = "center")),

  # Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput(
selectInput("var", "1, Select the variables from top doc summary file", 
choices =c( "service_total" = 1, 
              "ben_total" = 2,
              "payment" = 3, 
              "charged" = 4, 
              "allowed" = 5, 
              "unique_services_per_patient" = 6, 
              "duplicates_per_service" = 7, 
              "services_per_patient" = 8), selected= 1 ),
        br(),
        sliderInput("bins", "2, Select the number of BINs for histogram", min = 5, max = 40, value=20),
        br(),
        radioButtons("color", "3, Select the color of histogram", choices =c("Green", "Red", "Yellow"), selected= "Green")

    )),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("myhist")
    )
  ))
)

服务器

`library(ggplot2)
library(shiny)
options(shiny.error=browser)

load("/******/top_docs.RData", envir=.GlobalEnv)
shinyServer(function(input, output) {

  output$myhist <- renderPlot({

    # generate var based on input$var from ui.R
    col <- as.numeric(input$var)
    hist(top_docs[,col], breaks = seq(0, max(top_docs[,col], l = input$bins+1), col=input$color, main="Histogram of Top docs", xlab=names(top_docs[col])))

  })

})
`

发现它...所有的sidebarPanel内容是一个内部sliderInput功能,让错误

top_docs = data.frame( service_total = sample(1:100000, 40, replace=T),
                       ben_total = sample(1:100000, 40, replace=T)
                       , payment = sample(1:100000, 40, replace=T), charged = sample(1:100000, 40, replace=T)
                       , allowed = sample(1:100000, 40, replace=T), unique_services_per_patient = runif(40, 1, 5.2)
                       , duplicates_per_service = runif(40, 1.1, 16.2), services_per_patient = runif(40, 1.3, 70) )

# shiny plots on top_docs data
library(shiny)
ui <- fluidPage(
  # Header title
  titlePanel(title = h4("Top doctors plots - a histograms", align = "center")),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(
      # sliderInput(            < -------------  HERE
        selectInput("var", "1, Select the variables from top doc summary file", 
                    choices =c( "service_total" = 1, 
                                "ben_total" = 2,
                                "payment" = 3, 
                                "charged" = 4, 
                                "allowed" = 5, 
                                "unique_services_per_patient" = 6, 
                                "duplicates_per_service" = 7, 
                                "services_per_patient" = 8), selected= 1 ),
        br(),
        sliderInput("bins", "2, Select the number of BINs for histogram", min = 5, max = 40, value=20),
        br(),
        radioButtons("color", "3, Select the color of histogram", choices =c("Green", "Red", "Yellow"), selected= "Green")

      # )            < -------------  HERE
    ),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("myhist")
    )
  ))

server <- shinyServer(function(input, output) {

  output$myhist <- renderPlot({

    # generate var based on input$var from ui.R
    col <- as.numeric(input$var)
    hist(top_docs[,col], breaks = seq(0, max(top_docs[,col]), l = input$bins+1)
                                      , col=input$color, main="Histogram of Top docs", xlab=names(top_docs[col]))

  })

})

shinyApp(ui, server)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM