ui <- fluidPage(
checkboxGroupInput("data", "Select data:",
c("Iris" = "iris",
"Cars" = "mtcars")),
plotOutput("myPlot")
)
server <- function(input, output) {
output$myPlot <- renderPlot({
plot(Sepal.Width ~ Sepal.Length, data = input$data)
})
}
shinyApp(ui, server)
私は、ユーザーにデータセットを選択させたいshinyAppを持っています。そこから、そのデータセットを使って簡単なプロットを作成したいと思います。ただし、チェックボックスへのユーザー入力がserver
に正常に渡されなかったようです。どうすればこの問題を回避できますか?R shinyappチェックボックスから事前に保存されたデータセットを選択する
光沢でこれを行う典型的な方法は、switch()
です。つまり、入力にデータセットを指定する必要はありません。サーバーですべて行うことができます。あなたはこの仕事をするより柔軟な方法になりcheckboxGroupInput
、内の任意の文字列を使用することができ
library(shiny)
ui <- fluidPage(
checkboxGroupInput("data", "Select data:",
c("Iris" = "iris",
"Cars" = "mtcars")),
plotOutput("myPlot")
)
server <- function(input, output) {
dat <- reactive({
switch()
})
output$myPlot <- renderPlot({
dat <- switch(input$data,
"iris" = iris,
"mtcars" = mtcars)
plot(Sepal.Width ~ Sepal.Length, data = get(input$data))
})
}
shinyApp(ui, server)
注:お使いの文脈で。
'input $ data'は、データセット' iris'ではなく、文字ベクトル '' iris ''を返します。プロット関数で、この 'data = data(input $ data)'に変更して、指定されたデータセット – Jean
@ waterlingを読み込みます。はい、私はそれにも気付きました。残念ながらあなたの提案はうまくいかなかった。私は同じエラーを受け取ります: '無効な' envir '引数'文字 'の引数 – Adrian
hm ok。 'get(input $ data)'を試してください。それは私のために働く。 ' – Jean