2016-06-03 5 views
2

Shiny 앱에 Rmd에서 생성 된 대화식 문서를 포함하고 싶습니다. 문제는 Rmd에 두 개의 반짝이는 앱이 있다는 것입니다.Shiny : Shiny HTML을 올바르게 포함하는 법

이것은 .Rmd

# myInteractiveDocument.Rmd 

... 

```{r, echo=FALSE, eval=TRUE} 

    shinyAppDir('shiny_app_dir1', 
       options=list(width= "100%", height=700)) 
``` 

... 

```{r, echo=FALSE} 
shinyAppDir('shiny_app_dir2') 
``` 

이며, 이것이 내가 이런 식으로 진행 외부 반짝 응용 프로그램

library(shiny) 

# Define UI for application that draws a histogram 
ui <- shinyUI(fluidPage(

... 
     mainPanel(
     plotOutput("distPlot"), 
     includeHTML("intro.html") 
    ) 
    ) 
)) 

# Define server logic required to draw a histogram 
server <- shinyServer(function(input, output) { 

... 

# Run the application 
shinyApp(ui = ui, server = server) 

입니다 : 내가

R -e "rmarkdown::render('myInteractiveDocument.Rmd')" 
로 RMD 문서를 컴파일

바깥 쪽 앱의 같은 폴더.

RStudio에서 실행할 때 모든 것이 작동합니다. 나는 우분투 서버에 이동하지만 그때 나는이 라인 어쩌면 당신은 객체로 응용 프로그램을로드하려고한다 data:application/x-javascript

답변

0

var dynamicResults = results.filter(".html-widget-output"); 

에서 제기 된 오류

Uncaught TypeError: Cannot read property 'filter' of undefined 

를 얻을. 예를 들어

# myInteractiveDocument.Rmd 

... 

```{r, echo=FALSE, eval=TRUE} 

ui1 = source("path/to/app1/ui.R", local = TRUE)$value 
server1 = source("path/to/app1/server.R", local = TRUE)$value 
server(input, output, session) 
ui1 
``` 

... 

```{r, echo=FALSE} 
ui2 = source("path/to/app2/ui.R", local = TRUE)$value 
server2 = source("path/to/app2/server.R", local = TRUE)$value 
server2(input, output, session) 
ui2 
``` 

source(..., local = TRUE) 그건 그냥 복사/붙여 넣기와 같은 기본적으로, 그래서 두 개의 응용 프로그램의 입력/출력 식별자와 rmd이 작동하기 위해 충돌하지 않아야합니다.