シャイニーを学び始めました。素敵なシンプルなインターフェイスを試してみました。私はhttps://gist.github.com/4211337で見つけたコードを修正して下の最初のコードをまとめました。シャイニー - チェックボックスとフィルタリングデータの問題
次のように私が使用していたコードは次のとおりです。
library(shiny)
library(DT)
schedule<-read.csv("NBA_Schedule.csv")
stats<-read.csv("2015_2016_Stats.csv")
data_sets<-unique(schedule$Date)
data_sets<-as.character(data_sets)
server<-shinyServer(function(input, output) {
output$choose_dataset <- renderUI({
selectInput("dataset", "Game Date (US Time)", as.list(data_sets))
})
output$choose_columns <- renderUI({
if(is.null(input$dataset))
return()
schedule_subset<-schedule[ schedule$Date %in% input$dataset, ]
schedule_subset$Game<-as.character(schedule_subset$Game)
checkboxGroupInput("columns", "Choose Games to Include",
choices = schedule_subset$Game,
selected = schedule_subset$Game)
})
output$data_table <- DT::renderDataTable({
if(is.null(input$dataset))
return()
schedule_subset<-schedule[ schedule$Date %in% input$dataset, ]
teams_selected <- c(as.character(schedule_subset$VIS[schedule_subset$Game==input$columns]),as.character(schedule_subset$HOM[schedule_subset$Game==input$columns]))
if (is.null(input$columns))
return()
stats<-stats[ stats$Tm %in% teams_selected, ]
stats
})
})
ui<-shinyUI(pageWithSidebar(
headerPanel("2016/2017 NBA DFS (Draftstars & Moneyball) Data Summary"),
sidebarPanel(
uiOutput("choose_dataset"),
uiOutput("choose_columns"),
br(),
a(href = "https://gist.github.com/4211337", "Original source code")
),
mainPanel(
DT::dataTableOutput("data_table")
)
))
shinyApp(ui = ui, server = server)
時には、私は私がに問題はありません、以下のインターフェースを取得起動:今
を、コードの機能は、ティックボックスが選択されているチームでプレーする場合にのみ、このテーブルにチームを含めることになっています。開始時には現在5,463のエントリがありますが、これはまったく正しいものです。
しかし、いったんボックスの解除などを開始すると、テーブルのデータが面白い番号を返すようになります。ボックスを個別に選択すると、正しい数の行がテーブルに表示されます。つまり、Knicks vキャバリアーズは1767、Spurs v Warriorsは1913、Jazz v Blazersは1783です。
または私は最初と最後のマッチを選択した場合、私は唯一のキャバリアーズvのニックスのための1767の結果を得る:私は下の2つの試合を選択した場合は、その表は結果を返しません。 tickbox選択の
他の組み合わせは、同様の誤った結果を与えます。
誰かが私のコードでこの問題を解決して解決できるようにしてくれれば幸いです。
「NBA_Schedule.csv」と「2015_2016_Stats.csv」へのリンクがありますか?リンクがなければ正しく再現できません。私の推測では、 'DT :: renderDataTable()'関数でエラーが発生していますが、それでも検証する必要があります。 – nilsole
csvファイルは、ドロップボックスフォルダ内のにあります。 –
Morts81
私はDT :: renderDataTable()関数を使用しました。なぜなら、フィルタリングと検索が可能なテーブルが必要だったからです。 – Morts81