2016-09-16 12 views
0

恐ろしい "$演算子がアトムベクトルに無効です"というエラーが発生しました。 gvisLineChartを追加すると起こります。助言がありますか?

library(shiny) 
library(googleVis) 

#this is a dput of a sql query to make the example reproducible. 
#In reality this will be an RODBC sqlQuery result 
dataset <- structure(list(id = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), 
    value = c(1.68294196961579, 82.4641565111739, 83.3056274959818, 
    6.73176787846317, 5.89029689365528, 2.52441295442369, 4.20735492403948, 
    0.841470984807897, 5.04882590884738, 15.1464777265421)), 
    .Names = c("id", "value"), row.names = c(NA, 10L), class = "data.frame") 

ui <- shinyUI(
    plotOutput("motionPlot") 
) 

server <- shinyServer(function(input, output) { 

    output[["motionPlot"]] <- renderGvis({ 

    Line <- gvisLineChart(dataset, xvar=c("id"), yvar=c("value"))  
    plot(Line) 
    }) 

}) 

shinyApp(ui = ui, server = server) 
+0

でテストそれは[再現性の例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)せずに支援することは非常に困難です。 'dataset'のようなサウンドはdata.frameではありませんが、テストするためにコードを実行することはできません。 – MrFlick

+0

この例では、msdbデータベースを使用して、誰でもmssql dbを実行できるようにしました。任意のdbに対するクエリが結果を再現します。残念なことにDB関連の質問ですので、 '再現可能'にはデータベースへの参照が含まれています。あなたの関心をお寄せいただき、ありがとうございました。 – dataphile

+1

sqlQueryの結果を再現性のあるものにするために、その結​​果を出力しました。 – dataphile

答えて

1

googleVisプロットはかなりR.正規プロットの正規プロットのようではない静的な画像を生成するが、googleVisはHTMLと同様javascriptのデータと基本的にミニWebページを生成します。したがって、plotOutputを使用しないでください。htmlOutputを使用してページに表示する必要があります。また、plot()のいずれかを使用する必要はありません。これは私が「ピカピカgvisLineChart」をグーグルでhereより多くの例を見つけ

ui <- shinyUI(
    htmlOutput("motionPlot") 
) 

server <- shinyServer(function(input, output) { 
    output[["motionPlot"]] <- renderGvis({ 
     gvisLineChart(dataset, xvar=c("id"), yvar=c("value"))  
    }) 
}) 

shinyApp(ui = ui, server = server) 

あなたの例のデータで動作します。 googleVis_0.6.1shiny_0.13.2R 3.2.5

+0

恐ろしい!おかげでMrFlick – dataphile

関連する問題