2017-08-31 3 views
0

フレックスダッシュボード文書でShinyを使用してリアクティブselectInputを作成しようとしています。反応的なselectInputを作成する - フレックスダッシュボードwith Shiny

  1. 私の最初のselectInputは、マリンパークのゾーンタイプを選択します。

    selectInput("Zone", label = "Marine Park Zoning:", 
          choices = c("All", levels(EoTR$MarineParkZone)), selected = "All") 
    
  2. その後、私はその後、私は私の選択を定義するには、この反応性データフレームを使用しようとするステップ1.

    zone.choices = reactive({ 
        if (input$Zone=="All"){ 
        select(EoTR, ReefName, MarineParkZone, MarineParkMgmtSection) 
        }else{ 
        select(EoTR, ReefName, MarineParkZone, MarineParkMgmtSection)%>% 
        filter(MarineParkZone==input$Zone)} 
    }) 
    
  3. で選択したゾーンと反応性のデータフレームを作成するには、この入力を使用します次selectInput

    reactive({ 
    selectInput("Reef", label = "Priority Reef:", 
         choices = zone.choices()$ReefName, selected = "Arlington Reef (16-064)") 
    }) 
    

私は、ドキュメントを実行すると、私のSE cond入力は、selectメニューの代わりにコードの束を表示し、そのセレクタに基づくすべてのプロセスが失敗します。以下は

は、私はそれはおそらくどのように私は私の反応性の入力を定義していますが、私は本当にこの上の任意の助けに感謝したいと愚かな何かを知っている問題

--- 
title: "Untitled" 
output: 
    flexdashboard::flex_dashboard: 
    orientation: columns 
    vertical_layout: fill 
runtime: shiny 
--- 
```{r} 
library(flexdashboard) 
library(dplyr) 

EoTR = data.frame(ReefName=c("Reef1", "Reef2", "Reef3", "Reef4"), 
       MarineParkZone=c("Fished", "Fished", "Un-Fished", "Un-Fished")) 

selectInput("Zone", label = "Marine Park Zoning:", 
      choices = c("All", levels(EoTR$MarineParkZone)), selected = "All") 

zone.choices = reactive({ 
    if (input$Zone=="All"){ 
    select(EoTR, ReefName, MarineParkZone) 
    }else{ 
    select(EoTR, ReefName, MarineParkZone)%>% 
    filter(MarineParkZone==input$Zone)} 
}) 

reactive({ 
selectInput("Reef", label = "Priority Reef:", 
     choices = zone.choices()$ReefName, selected = "Reef1") 
}) 
``` 

を再現するいくつかのコードです。ここで

乾杯、

サム

答えて

0

あなたのためのソリューションです:問題はあなたのselectInput("Reef"...)とあった

--- 
title: "Untitled" 
output: 
    flexdashboard::flex_dashboard: 
    orientation: columns 
    vertical_layout: fill 
runtime: shiny 
--- 
```{r} 
library(flexdashboard) 
library(dplyr) 

EoTR = data.frame(ReefName=c("Reef1", "Reef2", "Reef3", "Reef4"), 
       MarineParkZone=c("Fished", "Fished", "Un-Fished", "Un-Fished")) 

selectInput("Zone", label = "Marine Park Zoning:", 
      choices = c("All", levels(EoTR$MarineParkZone)), selected = "All") 

zone.choices = reactive({ 
    if (input$Zone=="All"){ 
    EoTR 
    }else{ 
    EoTR %>% 
    filter(MarineParkZone==input$Zone)} 
}) 


renderUI({selectInput("Reef", label = "Priority Reef:", 
     choices = zone.choices()$ReefName, selected = "Reef1")}) 

``` 

、あなたは(inccorectである)反応性であることがそれを設定しています - - >ではなく、UIオブジェクト(renderUI)としてレンダリングする必要があります。

関連する問題