2017-11-29 5 views
1

를해야합니다,하지만 난 음모를 만들 때 오류 얻을 :오류 : 첫 번째 인수는 내가 동적 플롯을 shinydashboard에 기반 selectorInput을 만들려면 데이터 프레임 또는 공유 데이터

여기

First argument, data , must be a data frame or shared data.

내 코드의 일부를 I 데이터를 서브셋 plotly 입력으로 그들을 사용하려고 할 때 서버의 일부이다 :

data_sub = reactive({ 
data_sub_temp = df[df$market == input$market_selector,] 
return(data_sub_temp) 
    }) 


    output$market_plot <- renderPlotly({ 
    plot_ly(
    data = data_sub, 
    x = ~ created, 
    y = ~ pax, 
    group_by = ~ type, 
    color = ~ type, 
    type = "scatter", 
    mode = "lines+markers", 
    hoverinfo = 'text', 
    text = ~ paste('Year:', created, 
       '</br> </br> Clients: ', pax) 
) 
    }) 

데이터 세트가 장착 UI & 서버 코드 부 전에 사전 처리된다. & UI 부분 전에 서브셋 된 데이터 집합을 사용할 때이 코드는 작동하지만, data_sub 부분이 추가되면 작동하지 않습니다. 어떠한 제안? 감사합니다

+0

플롯이 입력에 반응하지 않아서 문제가 발생했을 때 데이터를 가져 오지 못하는 것이 문제 일 수 있습니다. 대신에'eventHandler' 사용을 고려해 보셨습니까? – Barbara

답변

2

나는 그 문제가 dataframe 부분이 reactive이지만 음모가 아니라고 생각합니다. 대신 eventHandler을 사용해보세요. 이 경우 actionButton을 UI에 추가하고 (sidebarPanel 일 수도 있음) reactive 부분없이 서버에 eventHandler을 추가해야합니다. 아래 코드

UI

actionButton(
     inputId = "submit_loc", 
     label = "Submit") 

서버

observeEvent(
    eventExpr = input[["submit_loc"]], 
    handlerExpr = { 

data_sub <- df[df$market == input$market_selector,] 

output$market_plot <- renderPlotly({ 
    plot_ly(
    data = data_sub, 
    x = ~ created, 
    y = ~ pax, 
    group_by = ~ type, 
    color = ~ type, 
    type = "scatter", 
    mode = "lines+markers", 
    hoverinfo = 'text', 
    text = ~ paste('Year:', created, 
       '</br> </br> Clients: ', pax) 
) 
    }) 

}) 

시도 나이 작동 여부를 알려 주시기 바랍니다.