0
ここに私の問題を説明する簡単なアプリがあります。デフォルト値を指定せずにselectizeInputを使用すると、メインパネルは単にエラーメッセージを表示します。何も選択しなければ空のプロットが必要です。コードを変更するにはどうすればよいですか?何もselectizeInput
に選択されていない場合、あなたが不正な構文で文字列mtcars$
にeval(parse())
を呼び出すようrinyuアプリで指定されたselectizeInputのデフォルト値がないときのエラーメッセージ
library(shiny)
library(datasets)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectizeInput('var', 'choose variable',
choices = names(mtcars),
options = list(
placeholder = 'Please select an option below',
onInitialize = I('function() { this.setValue(""); }'))
)
),
mainPanel(
plotOutput('hist')
)
)
)
server <- function(input, output) {
output$hist <- renderPlot ({
hist (eval(parse(text=(paste0('mtcars$', input$var)))))
})
}
shinyApp(ui, server)
ありがとうございます!次の質問:変数にアクセスするために二重角括弧が必要な理由 – zesla
あなたの問題を解決したら、私の答えを受け入れてください。 data.frameサブセットの場合、data.framesの名前はlistなので、 '$'や '[[' 'listのように要素にアクセスすることができます。あなたは 'mtcars [、iput $ var]'を実行することもできます。このチートシートを見てください。http://github.com/rstudio/cheatsheets/raw/master/source/pdfs/base-r.pdf – Victorp