2017-03-07 10 views
-1

私は棒グラフを表示する簡単なシャイニーAPPを開発しようとしています。私が従っている例(https://shiny.rstudio.com/gallery/telephones-by-region.html)では、プロットはPhone by Regionです。私はもっ​​と簡単にしたい:候補者の数だけ(私のデータ:父親)。R Shiny Error with ggplot

主な問題は、バープロットコード内にinputコマンドがあることです。

Don't know how to automatically pick scale for object of type tbl_df/tbl/data.frame. Defaulting to continuous. Warning: Error in : Discrete value supplied to continuous scale

データサンプル:

Candidato1 Candidato2 Candidato3

barplot(WorldPhones[,input$region]*1000, 
     main=input$region, 
     ylab="Number of Telephones", 
     xlab="Year") 

はこれを行う

ggplot(data=dados, aes(x=dados[input$candidato])) + 
    geom_bar(stat="count") 

によって置換されなければならない、私はエラーを得ました3210

POSITIVO NEGATIVO POSITIVO POSITIVO
NEGATIVO POSITIVO NEGATIVO NEGATIVO
POSITIVO POSITIVO NEGATIVO NEGATIVO

どのように私はこの問題を解決することができますか? ggplotが私の文字列を受け入れることができないが、光沢のある外でうまく動作するように見える。

Tks、Ricardo。

+0

あなたは 'input $ candidato'のどこに来たのかを説明する必要がありますか?あなたはそれで何をしたいですか?それは列名か列の値ですか? 'input $ candidato'が列のフィルター値を表す場合、列名は何ですか? –

+0

おそらく 'ggplot(data = dados、aes_string(x = input $ candidato))+ geom_bar(stat =" count ")'のようなものが必要です。 'aes'の中で' $ 'を使わないでください。 – Axeman

答えて

-1

あなたのコードを見ながら、私はまっすぐに問題がこのコードの一部であることを伝えることができます...

実際にあなたがより簡単にそれを説明する必要があり、あなたの質問を理解することは非常に難しいです:

input$candidatoは、行または列を除外する必要がある場合
aes(x=dados[input$candidato]) 

あなたが私はあなたが列を意味想定し

....明確に定義されたhaventは、その後、コードはそのようになります。

aes(x=dados[, input$candidato]) 
+0

これは 'ggplot'を使う正しい方法ではないだけでなく、data.framesは' df [i] '表記を使って' list'sなので実際に列のインデックスを付けることができます。 – Axeman

+0

@Malvina_a間違った質問を申し訳ありません。しかし、あなたは私に正しいメッセージを送ります。作品! –