2017-09-20 16 views
0

私は入力に基づいてデータフレームを操作しようとしています。私のコードは次のとおりです。光沢のあるサーバーの状態で

library(shiny) 
library(quantmod) 
ui <- fluidPage(
    plotOutput("chart", click = "SD1"), 
    radioButtons(
    "term", 
    "Term", 
    choices = c("Daily", "Weekly", "Monthly"), 
)) 

server <- function(input, output){ 
    df1 <- reactive(getSymbols("JPM", src = "google", auto.assign = F)) 
    output$chart <- renderPlot(
    if (input$term == "Weekly") { 
     df <- to.weekly(df1()) 
    } 
    else if (input$term == "Monthly") { 
     df <- to.monthly(df1()) 
    } 
    else { 
     df <- df1() 
    } 
    chartSeries(
     df() 
    ) 
) 
} 

shinyApp(ui, server) 

なぜ私の条件が機能しないのですか?どうもありがとうございました!

答えて

2

私はあなたの括弧が混ざっていると思う、これは仕事をする必要があります。あなたは2つの反応性物質を作成することができ、あなたのサブセットデータを使用し、まだ元へのアクセスを維持したい場合は、次のいずれかをあなたはdf1()にアクセスすることができ、他方は

library(shiny) 
library(quantmod) 

ui <- fluidPage(
    plotOutput("chart", click = "SD1"), 
    radioButtons(
    "term", 
    "Term", 
    choices = c("Daily", "Weekly", "Monthly"), 
)) 

server <- function(input, output){ 
    df1 <- reactive({getSymbols("JPM", src = "google", auto.assign = F)}) 

    df <-reactive({ 
    if (input$term == "Weekly") { 
     df <- to.weekly(df1()) 
    } 
    else if (input$term == "Monthly") { 
     df <- to.monthly(df1()) 
    } 
    else { 
     df <- df1() 
    } 
    return(df) 
    }) 

    output$chart <- renderPlot({ 

    chartSeries(df()) 
    }) 
} 

shinyApp(ui, server) 
+0

df()は、それが動作ありがとうです。ですから 'print(input $ term)'の目的は何ですか?ところで、 'renderPlot'の外側で' df'をどう呼び出すことができますか? – Arthur

+0

私は、plotの外側にあるdfにアクセスする方法を追加しました。 'print(input $ term)'は、nullを世話する必要があるかどうかを確認するために、本当にそこに必要ですか? –

+0

ありがとう!できます! – Arthur

関連する問題