2017-08-15 9 views
1

(gomplot()、geom_boxplot()などで表示するggplotグラフの種類をユーザーに選択させたいが、 "function"関数の文字列ではありません。Rの入力としてggplot2関数を渡すShiny

私の入力の1つは、次のようになります。

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 

そして、私はこのようなルックスを取得エラー:

Error: Don't know how to add input$graph_type to a plot

缶誰かが私を助けますか?ありがとう!

P.S.コード内の他のすべてが動作すると仮定します。必要に応じてスクリプト全体を提供することができます。

+0

私は 'input $ graph_type'が文字として渡されているので、geom_point()" 'と仮定します。これが当てはまるので、 'ggplot'はそれを追加する方法を知らない。私は 'as.name(input $ graph_type)' – roarkz

+0

@WestleyDangを試してみました。私の解決策で問題を解決できれば、 – PoGibas

答えて

0

getを使用すると、オブジェクトの名前で値を返すことができます。

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

あなたは全員が括弧を取り除いても問題ないでしょう。 ### get( "mean()")のエラー:オブジェクト 'mean()'が見つかりませんでした。 –

+0

@ 42- 'get(" mean() ")この小さなテストを見てください。 ")(c(1:10))'は私に働きます – PoGibas

+0

あなたは意味のために読書に問題があるようです。値 'selectInput'は' get'の中に入れます。あなたの 'get'引数は返されるものになることはありません。 –

関連する問題