2016-12-09 4 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 ( function (input, output) {'. – 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. 코드 완료 코드 : shinyApp(ui = ui, server = server)
하나의 파일에

샤이니에 대한 자세한 - app.R 파일 : http://shiny.rstudio.com/articles/single-file.html