2017-07-04 22 views
0

私はシンプルなCycle in R Shinyを書こうとしていますが、私はいくつかの問題を発見しています。私は、ユーザーが入力したものに応じて、この場合mという変数を作成します。ここでは、コードがあります:Cycle in R Shiny

if(input$city=="Enter Text..."){ 


m<-reactive({leaflet() %>% 
    addProviderTiles(providers$OpenStreetMap.BlackAndWhite) %>% 
    addPolylines(data = trips(), 
       lng = ~V1, 
       lat = ~V2,weight=1,color="purple") %>% 
addCircles(lng = geocode(input$city)$lon, lat = geocode(input$city)$lat, weight = 5, 
      radius =input$radius, popup = input$city, color="blue",fillOpacity = 0) 
}) 

} else { 

m<-reactive({leaflet() %>% 
    addProviderTiles(providers$OpenStreetMap.BlackAndWhite) %>% 
    addPolylines(data = trips(), 
       lng = ~V1, 
       lat = ~V2,weight=1,color="purple") 
}) 
} 

これを行うには、私は反応環境の外で何かをしようとしていることを言いますが、変数mは、反応性として定義されているエラーが発生します。これをどうすれば解決できますか?

おかげ

答えて

1

input$cityは確かに反応性の環境で使用する必要のある反応性元素です。 reactive()関数内にifステートメントを追加するだけです。 leaflet工事の始まりは同じなので、コードを明確にするでしょう。 addCircles(.,を使用することにより

m<-reactive({leaflet() %>% 
    addProviderTiles(providers$OpenStreetMap.BlackAndWhite) %>% 
    addPolylines(data = trips(), 
       lng = ~V1, 
       lat = ~V2,weight=1,color="purple") %>% 
    {if(input$city=="Enter Text..."){ 
      addCircles(., lng = geocode(input$city)$lon, 
      lat = geocode(input$city)$lat, weight = 5, 
      radius =input$radius, popup = input$city, 
      color="blue",fillOpacity = 0) 
    } else {.} 
    } 
}) 

、あなたはif文とelse {.}で、あなただけのaddCircles機能を追加することなく、前の要素を返すにチェーンを取得します。

+0

これは以前の問題を解決したように見えますが、 "引数マップがデフォルトなしでありません"が返されるようになりました。アイデアはありますか?ありがとう –

+1

はい、申し訳ありませんが、私は 'addCircles'の中でifステートメントで連鎖を取得する点を忘れていました。次回再現可能な例を提供してください:) – sechstein

+0

これは再現不可能なのですか? –