output$x2 = renderPlot({
dat = get_data()
if (input$para == "rr"){
p = ggplot(data=dd) + ...
if (input$trend == "y") {p = p + geom_smooth()}
plot(p)
}
})
조금만 shiny를 쓸 수 있으면 바로 알게 되는 것 중의 하나일 것이다. 별다른 조건이 없다면 renderPlot에서 ggplot을 그냥 입력해도 그래프가 출력이 된다. 그런데 이상하게도 조건을 붙이면 빈 화면이 출력된다. 우연하게도 해결한 방법은 전통적인 ggplot 코딩 안내문처럼 ggplot을 특정 변수(이 경우에는 p)에 받고, 이를 출력하도록 하는 것이다.