2017-06-04 21 views
1

数値入力を取得し、2つの式を入力に適用してヒストグラムをプロットしようとしています。エラー - 引数 "inputId"がありません。既定値はありません。

UIサイド

library(shiny) 

shinyUI(fluidPage(
    actionButton (InputId = "USD", label = "US Bond Return"), 
    actionButton (InputId = "INR", label = "Indian Bond Return"), 
    numericInput(InputId = "num", label = "USD given by Investor", value = 0, 
min = 1, max = 1000, step = NA, width = NULL), plotOutput("hist"))) 

サーバー側

library(shiny) 

shinyServer(function(input, output) { 

rv = reactiveValues(data = input$num) 
observeEvent(input$USD, { rv$data <- (input$num * 0.0225) }) 
observeEvent(input$INR, { rv$data <- (input$num*0.1) }) 

output$curve <- renderPlot({ 
hist(rv$data) 
}) 
} 
) 

答えて

0

あなたのUIの問題があります。そのInputIdではなく、そのinputId(小さなiに気づく)。次のように

したがって、あなたのUIコードは次のようになります。

shinyUI(fluidPage(
    actionButton (inputId = "USD", label = "US Bond Return"), 
    actionButton (inputId = "INR", label = "Indian Bond Return"), 
    numericInput(inputId = "num", label = "USD given by Investor", value = 0, 
       min = 1, max = 1000, step = NA, width = NULL), plotOutput("hist"))) 
+0

ありがとう!そのエラーは解決されましたが、現在は別のエラーが発生しています: - .getReactiveEnvironment()$ currentContext()内のエラー: アクティブなリアクティブなコンテキストなしで操作が許可されていません。 (反応式やオブザーバの内部からしかできないことをしようとしました。) –

+0

このエラーは 'rv = reactiveValues(data = input $ num)'のためです。 'rv = reactiveValues(data = input $ num)'を試してみてください。 – SBista

+0

また、アプリケーションの最初の実行後にボタンをクリックしたときに 'observeEvent'が呼び出されるため、達成しようとしていることはコードからは達成できません。あなたの 'renderPlot({ hist(rv $ data)})'は、アプリケーションの最初の実行中に実行され、再度呼び出されることはありません。光沢のあるアプリの仕組みを理解するには、[this](https://shiny.rstudio.com/reference/shiny/latest/plotOutput.html)を参照してください。また、[Shiny App Tutorial](https://shiny.rstudio.com/tutorial/)は、あなたが学ぶ場所として最適です。 – SBista

関連する問題