タブでデータフレームを取り、ユーザーがフィルタリングできるようにしてから、フィルタに基づいてヒストグラムを作成します。このアプリは私のローカルマシンで実行すると素晴らしい動作します。データフレームは、反応性にする必要があるか、反応性であることが必要があるかもしれないことに、私は他の記事から理解Shiny Hostではローカルではなくエラーが発生するのはなぜですか
ERROR: object of type 'closure' is not subsettable
:しかし、私はそれを公開すると、私は次のエラーを取得するshinyapps.ioするには?しかし、データフレームを次のように反応的に囲むと、
dat <- reactive(df)
同じエラーが発生します。
library(shiny)
library(DT)
#server.R
shinyServer(function(input, output) {
df <- read.csv('orioles.csv')
output$table <- DT::renderDataTable(DT::datatable({
dat <- df
if (input$opp != "All") {
dat <- dat[dat$Opponent == input$opp,]
}
if (input$prk != "All") {
dat <- dat[dat$parkId == input$prk,]
}
if (input$strt != "All") {
dat <- dat[dat$Day.or.Night == input$strt,]
}
dat
}))
output$plot1 <- renderPlot({
dat <- df
if (input$opp != "All") {
dat <- dat[dat$Opponent == input$opp,]
}
if (input$prk != "All") {
dat <- dat[dat$parkId == input$prk,]
}
if (input$strt != "All") {
dat <- dat[dat$Day.or.Night == input$strt,]
}
hist(dat$BAL_SCORE, main = "Based on Filters", xlab = "Runs", ylab = "Frequency of runs scored", breaks = 20, col = "orange")
})
})
UI:
library(shiny)
library(DT)
navbarPage(
title = 'Navigation',
tabPanel('Data Table', fluidPage(
titlePanel("Baltimore Orioles Game Results from 2010-2015"),
# Create a new Row in the UI for selectInputs
fluidRow(
column(4,
selectInput("opp",
"Opponent:",
c("All",
unique(as.character(df$Opponent))))
),
column(4,
selectInput("prk",
"Ball Park:",
c("All",
unique(as.character(df$parkId))))
),
column(4,
selectInput("strt",
"Day or Night Game:",
c("All",
unique(as.character(df$Day.or.Night))))
)
),
# Create a new row for the table.
fluidRow(
DT::dataTableOutput("table")
)
)),
tabPanel('Runs', fluidPage(
titlePanel("Runs Scored in filtered games"),
fluidRow(
column(6,
plotOutput("plot1", width = 800, height = 600)
)
)
))
)
通常、クロージャーエラーは、dfというdata.frameの代わりにdf-functionを使用しようとしたときに発生します。私の推測では、dfを正しくロードしていることを確認することです。ロードした後にprint(df)のようなものを呼び出すことでこれを試すことができます。それはanythin有用な戻りますか? – David
データセットを自分の環境にロードしたため、ローカルで実行されていることに気付きました。データセットを環境にロードせずにアプリケーションを実行すると、動作しません。私は光沢のあるアプリで実行するためにcsvファイルを読み込む方法が不明だと思います。 –