2016-12-09 3 views
-1

RStudioには、mysqlデータベースから取得したデータを扱うShinyアプリケーションがあります。R Shiny - mysql接続がserver.Rから動作しない

mysqlとクエリへの接続は、アプリケーション外のファイルにあるため、データフレームを作成できます。

しかし、mysqlへの接続とsqlクエリをShinyアプリケーションのserver.Rにコピーすると、クエリがスキップされ、データフレームが存在しないというエラーが表示されます(Error : object 'tickets' not found)。

したがって、mysqlクエリはserver.Rの外部から動作しますが、server.Rでは動作しません。私は間違って何をしていますか?ここで

は私server.Rとui.Rのサンプルです:

server.R

library(shiny) 
library(RMySQL) 
library(ggplot2) 
#library(ggiraph) 
library(lubridate) 

##Connect to Redmine db 
con <- dbConnect(MySQL(), 
       user = '#', 
       password = '#', 
       host = '#', 
       dbname='#') 

tickets<-dbGetQuery(con, "Select * from table") 
issues_speed_unique<-unique(na.omit(dbGetQuery(con,"Select * from table2"))) 
dbDisconnect (con) 

some aggregations.... 

shinyServer(
    function(input,output){ 
    output$tickets_week<-renderPlot(
      ggplot(data = subset(tickets, 

ui.R

library(shiny) 
library(ggplot2) 
#library(ggiraph) 
#library(htmltools) 
library(lubridate) 

shinyUI(fluidPage( 
+0

あなたは 'プリント(チケット)'クエリの下に追加して、アプリを実行する場合、データフレームの印刷コンソールにいますか? – Pete900

+0

@ Pete900申し訳ありませんが、返信が遅れています。いいえ、表示されません。 'shinyServer( 関数(入力、出力){'。 – adlisval

+0

)RStudioで実行しているのと比較してブラウザでアプリケーションを起動すると動作しますか? – Pete900

答えて

0

問題ui.Rが実行されたということでしたの前に、server.Rとなりました。データはserver.Rでクエリされました - したがってエラーです)。

一つのファイルに、server.Rからとui.Rの両方から、コードを入れていたソリューションは、app.Rと呼ばれます。だから、app.Rに私は次の順序でコードを書いた:

  1. ロードパッケージ(library(packagename))コード
  2. 接続とクエリのコード
  3. サーバーコード
  4. UIコード
  5. ください
  6. 終了コード:shinyApp(ui = ui, server = server)
0 1つのファイルに

シャイニーの詳細 - app.Rファイル:http://shiny.rstudio.com/articles/single-file.html

関連する問題