2017-11-30 3 views
0

私は光沢があり、これはとても難しいです。私は最後に反応したが、何も働いていないことがわかったいくつかの提案を試みた。私は何が間違っているのか分かりません。メインウィンドウにggvisのビジュアライゼーションが表示されません

私は< - reactive({})とvis%>%bind_shiny()を試しましたが、これはうまくいかなかった。どんな提案も高く評価されます。

ui.Rが表示されますが、可視化はしていませんし、私は、エラーメッセージ

server.R

library(shiny) 
library(ggvis) 
library(dplyr) 


dataS <-read.csv("https://raw.githubusercontent.com/indianspice/IS608/master/Final%20Project/Data/shinydata.csv", 
       stringsAsFactors = FALSE) 


function(input, output, session) { 
#Filter breaches 
breaches <- reactive({ 
    records <- input$records 
    minyear <- input$year[1] 
    maxyear <- input$year[2] 

    # Apply filters 
    b <- dataS %>% 
    filter(
    TotalRecords >= records, 
    Year >= minyear, 
    Year <= maxyear 
) %>% 
arrange(records) 

#Filter by breach 
if (input$breach != "All") { 
    breach <- paste0("%", input$breach, "%") 
    b <- b %>% filter(Breach %like% breach) 
} 

#Filter by company 
if (!is.null(input$company) && input$company != "") { 
    company<- paste0("%", input$director, "%") 
    b <- b %>% filter(Company %like% company) 
}  

reactive({ 
    xvar_name <- names(axis_vars)[axis_vars == input$year] 
    yvar_name <- names(axis_vars)[axis_vars == input$records] 

    xvar <- prop("x", as.symbol(input$xvar)) 
    yvar <- prop("y", as.symbol(input$yvar)) 

    breaches %>% 
     ggvis(x=xvar, y=yvar, stroke = ~breach) %>% 
     layer_points() %>% 
     add_axis("x", title = xvar_name) %>% 
     add_axis("y", title = yvar_name) %>% 
     add_legend("stroke", title = "Breach Type", 
        values = c("Hacking or Malware", 
           "Unintended Disclosure", 
           "Insider", 
           "Portable Device", 
           "Stationary Device", 
           "Unknown", 
           "Payment Card Fraud", 
           "Physical Loss")) %>% 
     scale_nominal("stroke", domain = c("Hacking", 
              "Unintended", 
              "Insider", 
              "Portable", 
              "Stationary", 
              "Unknown", 
              "Payment", 
              "Physical"), 
          range = c("red", "orange")) %>% 
     bind_shiny("ggvis", "ggvis_ui") 
    }) 

}) 


} 

ui.R

library(shiny) 
library(ggvis) 

dataS <- read.csv("https://raw.githubusercontent.com/indianspice/IS608/master/Final%20Project/Data/shinydata.csv", 
      stringsAsFactors = FALSE) 


fluidPage(
    titlePanel("Data Breaches in the United States"), 
    #fluidRow(
     column(4, 
       h4("Filter Data"), 
       sliderInput("records", "Number of records breached", 
          min = 10, 
          max = 1000000, 
          value = 10000, 
          step = 500), 
       sliderInput("year", "Year breach reported", 
          sep = "", 
          min = 2005, 
          max = 2017, 
          value = c(2007, 2010)), 
       selectInput("breach", "Type of breach", 
          c("All", 
          "Hacking or Malware", 
          "Unintended Disclosure", 
          "Insider", 
          "Portable Device", 
          "Stationary Device", 
          "Unknown", 
          "Payment Card Fraud", 
          "Physical Loss")), 
       selectInput("organzation", "Select type of organization", 
          choices = unique(dataS$TypeofOrganization)), 
       selectInput("company", "Select company", 
          choices = unique(dataS$Company) 
       ), 
       textInput("companyName", "Enter company name") 
      ), 

    #), 
    mainPanel(
     uiOutput("ggvis_ui"), 
     ggvisOutput("ggvis") 
    ) 


    ) 

データ

に得ることはありません
Company TypeofBreach   TypeofOrganization  TotalRecords Year 
Bullitt Unintended Disclosure Educational Institutions 676  2009 
Roane Portable Device   Educational Institutions 14783 2009 
Halifax Portable Device   Healthcare Medical Provider 33000 2009 
Suffolk Unintended Disclosure Educational Institutions  300 2009 
Penrose Physical Loss   Healthcare Medical Providers 175 2009 

答えて

1

あなたは反応している内部の反応性物質を清澄化する。これは悪い。あなたは、のreactiveを使用して反応性のある(変更した)データを定義する必要があります。

observe({ 
    breaches() ... <do something> 
    ... 
    %>% bind_shiny("ggvis", "ggvis_ui") 
}) 

してから、最後に、bind_shinyを使用します。その後、あなたはobserveを使用して、そのデータの変化を観察する必要があります。 (ggvis help pagesに触発さ)それを行う方法を紹介するために、次の最小限の例を参照してください:

library(shiny) 
runApp(list(
    ui = fluidPage(
    sliderInput("slider", "Select rows from mtcars to consider", min=1, max = nrow(mtcars), step = 1, value = c(1,10)), 
    ggvisOutput("p"), 
    uiOutput("p_ui") 
), 
    server = function(input, output) { 

    # define the data according to some input 
    data <- reactive({ 
     mtcars[ input$slider[1] : input$slider[2], ] 
    }) 

    # observe changes in the data and update ggvis plot accordingly 
    observe({ 
    data %>% 
     ggvis(~wt, ~mpg) %>% 
     layer_points() %>% 
     bind_shiny("p", "p_ui") 
    }) 
    } 
)) 

enter image description here

関連する問題