2017-10-21 32 views
0

我正在使用mpg數據集來練習我的閃亮技能,並且我想嘗試PlotOutput功能,但是它不能工作!它告訴我,我有一個意想不到的「,」。我不知道爲什麼。PlotOutput告訴我有關意外的事情,「

我ui.R看起來是這樣的:

library(shiny) 
    library(ggplot2) 
    library(dplyr) 

    shinyUI(fluidPage(

    plotOutput("plot1", 
     click = "plot_click", 
     dblclick = "plot_dblclick", 
     hover = "plot_hover", 
     brush = "plot_brush"), 

verbatimTextOutput("info"), 

# Application title 
titlePanel("mpg"), 


sidebarLayout(
sidebarPanel(
    selectInput(inputId = "var1", 
       label = "Choose x variable", 
       choices = 
       names(mpg) 
), 
    uiOutput('Var1Slider'), 

    br(), 
    selectInput(inputId = "var2", 
       label = "Choose y variable", 
       choices = 
       names(mpg)[sapply(mpg, class) != "character"]) 
), 

mainPanel(
    plotOutput("distPlot") 
) 
) 
)) 

而且我server.R看起來是這樣的:

 paste0(
     "click: =", xy_str(input$plot_click), 
     "dblclick: =", xy_str(input$plot_dblclick), 
     "hover: =", xy_str(input$plot_hover), 
     "brush: =", xy_range_str(input$plot_brush) 
    ) 

server <- function(input,output){ 

    output$distPlot <- renderPlot({ 

    # browser() 

if(typeof(mpg[[input$var1]]) == "character") 
{ 
    ggplot(mpg) + 
    xlab(input$var1) + 
    ylab(input$var2) + 
    ggtitle(paste("Plot", input$var1, "vs", input$var2)) + 
    geom_boxplot(mapping = 
        aes_string(x = input$var1, 
           y = input$var2)) 
} 

else 
{ 
    mpg %>% 
    filter(get(input$var1) >= input$Var1Slide[1]) %>% 
    filter(get(input$var1) <= input$Var1Slide[2]) %>% 
    ggplot() + 
    xlab(input$var1) + 
    ylab(input$var2) + 
    ggtitle(paste("Plot", input$var1, "vs", input$var2)) + 
    geom_point(mapping = 
       aes_string(x = input$var1, 
          y = input$var2)) 
} 
}) 

output$Var1Slider <- renderUI({ 

# browser() 

if(typeof(mpg[[input$var1]]) == "character") 
{ 
    return(NULL) 
} 
else 
{ 
    sliderInput('Var1Slide', 
       label = paste("selected:",input$var1), 
       min = min(mpg[[input$var1]]), 
       max = max(mpg[[input$var1]]), 
       value = c(min(mpg[[input$var1]]),max(mpg[[input$var1]])), 
       step = range(mpg[[input$var1]])/5) 
} 

xy_str <- "" 
if(is.null(e)) return("NULL\n") 
xy_str <- paste0("x=", round(e$x, 1), " y=", round(e$y, 1), "\n") 

xy_range_str <- "" 
if(is.null(e)) return("NULL\n") 
xy_range_str <- paste0("xmin=", round(e$xmin, 1), " xmax=", round(e$xmax, 1), 
     " ymin=", round(e$ymin, 1), " ymax=", round(e$ymax, 1)) 

    paste0 
    (
    "click: " = xy_str(input$plot_click), 
    "dblclick: " = xy_str(input$plot_dblclick), 
    "hover: " = xy_str(input$plot_hover), 
    "brush: " = xy_range_str(input$plot_brush) 
) 

    } 
) 
} 
+1

你在'paste0()'內用''click:「= xy_str(input $ plot_click)'來達到什麼目的? – PoGibas

回答

2

如果您更換您的paste0功能這將解決這個特定的錯誤。我不認爲paste0被註冊爲一個函數,因爲括號是在不同的行,也需要在函數中的每個參數之間有一個逗號。

相關問題