闪亮应用程序中二元运算符的非数字参数

时间:2018-01-04 17:15:04

标签: r ggplot2 shiny

这是我下面的代码,我认为这可能只是一个愚蠢的错误,但我花了最近5天的时间试图找到我在我的应用中出错的地方: -

ui <- fluidPage(h1("Left Ventricular Hypertrophy"),
                titlePanel("Regression Model"),
                sidebarLayout(
                sidebarPanel(

                  h3("Marginal Histogram"),
                  selectInput("marhis1", "X:", choices = unique(colnames(lvh))),
                  selectInput("marhis2", "Y:", choices = unique(colnames(lvh)), selected = "sbp"),
                  sliderInput("bin", "Bin Width:", min = 1, max = 100, value = 10),
                  h3("Box Plot"),
                  selectInput("Variable4", "llvmi or sbp:", choices = c("llvmi", "sbp")),
                  selectInput("Variable5", "Grouped by:", choices = c("sex", "card", "dgp", "surv")),

                  mainPanel(
                            h3("Marginal Histogram"),
                            plotOutput("hist"),
                            br(),
                            h3("Boxplot"),
                            plotOutput("Box")
                            )

                  )
)

server <- function(input, output) {

  lvh <- read.table('lvh.dat.txt', header = T)



  output$hist <- renderPlot({
  marg <- ggplot(lvh, aes(input$marhis1, input$marhis2) + geom_point() + theme_light() +
  xlab(input$marhis1) + ylab(input$marhis2))
  ggMarginal(marg, input$marhis1, input$marhis2, type = "histogram", binwidth = input$bin)
})


  output$Box <- renderPlot({
    choice2 <- data.frame(x=lvh[input$Variable4], y=lvh[input$Variable5])
    ggplot(choice2, aes(lvh[input$Variable4], lvh[input$Variable5]) + geom_boxplot() + theme_light() +
            xlab(input$Variable4) + ylab(input$Variable5))
  })

}


shinyApp(ui = ui, server = server)

当我运行应用程序时,我继续在两个图中都遇到二元运算符的非数字参数错误,任何人都可以帮助

1 个答案:

答案 0 :(得分:2)

首先,我鼓励您始终提供易于检查的代码示例。因为,从您在原始帖子中的评论对话中,您可以看到您没有完全明白这意味着:制作代码段,以便简单复制+粘贴足以让您遇到错误面对。

至少有四个人查看了您的代码,并且立即劝阻所有人不要耐心等待。

否则很容易发现,只是缺少一个括号

ggplot(lvh, aes(input$marhis1, input$marhis2) + geom_point()

必须是

ggplot(lvh, aes(input$marhis1, input$marhis2)) + geom_point()

(当然也消除了错误的原始结束括号)。

编辑:对ggplot的第二次调用也是如此。更多相关信息:ggplot通过向图表添加图层来实现。这就是您必须添加+生成的ggplot(...)元素的原因。不在ggplot的调用中添加选项。