2016-02-04 141 views
0

我建立一個閃亮的應用程序,它應該可以比較的足球(足球爲我們的美國朋友)玩家對各種統計數據(通過,射擊,目標等)[R閃亮的應用程序:顯示多層次

在應用程序可以選擇一個或多個玩家,並查看他們對統計信息的預測情況。但是在我的應用程序中,選擇玩家在創作情節方面效果不佳。有時候它很有用,大部分時間它顯示一個空的情節。如果沒有玩家被選中,那麼效果很好,對於一個玩家來說也是一樣。當選擇超過1名選手時,各種情況會發生。任何人都知道怎麼樣?謝謝!

ui.R

library(shiny) 
library(ggplot2) 

dataset <- data.frame(player=c("Joel", "Marty", "Tinus", "Jelle","Gio","Tom", 
           "Tim","Peter","Marco", "Martin"), 
        pass=c(1,10,30,50,80,200,250,300,500,2000), 
        goals=c(12,10,8,1,3,5,9,7,2,17)) 

fluidPage(

    titlePanel("Player"), 

    sidebarPanel(


    selectInput('y', 'Y', names(dataset), names(dataset)[[3]]), 
    selectInput('z','Player', levels(dataset$player), multiple=TRUE) 
), 

    mainPanel(
    plotOutput('plot') 
) 
) 

server.R

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


function(input, output) { 
    dataset<-data.frame(player=c("Joel", "Marty", "Tinus", "Jelle", "Gio","Tom", 
           "Tim","Peter","Marco", "Martin"), 
        pass=c(1,10,30,50,80,200,250,300,500,2000), 
        goals=c(12,10,8,1,3,5,9,7,2,17)) 


    dataset1<-reactive({ 
    y<-input$y 
data<-dataset 

if (!is.null(input$z) && input$z != "") { 
    data <- filter(data, player == input$z) 
} 
data 
    }) 

    output$plot <- renderPlot({ 

    ggplot(dataset1(), aes_string(x=dataset1()$player, y=input$y))+ 
    geom_bar(stat="identity") 

    }, height=700) 
} 

回答

0

你在你的代碼的兩個錯誤:

1)player == input$z着工作的時候length(input$z)>1你需要使用%in%類似data <- filter(data, player %in% input$z)

2)x=dataset1()$player打印在aes_string smthing怪你需要x="player"