将ggplot2函数作为R Shiny中的输入传递

时间:2017-08-15 19:44:33

标签: r shiny

我希望用户选择要显示的ggplot图形(geom_plot(),geom_boxplot()等),但我不知道如何传递"函数"而不是函数的字符串。

我的一个输入看起来像这样:

selectInput("graph_type", "Select graph type", 
        c("geom_point()", "geom_boxplot()"), selected = NULL, multiple = FALSE,
        selectize = TRUE, width = NULL, size = NULL)

输出如下:

  output$p1 = renderPlot({
    ggplot(raw, aes(x=raw[,input$x1], y=raw[,input$y1])) +input$graph_type

我得到的错误看起来像这样:

  

错误:不知道如何将输入$ graph_type添加到绘图中

有人可以帮帮我吗?谢谢!

P.S。假设代码中的其他所有内容都有效。如果需要,可以提供整个脚本。

1 个答案:

答案 0 :(得分:0)

使用get按对象名称返回值。

ggplot(raw, aes(x=raw[,input$x1], y=raw[,input$y1])) + 
    get(input$graph_type)()