2014-10-14 3 views
4

У меня есть блестящее приложение с ui.R, server.R и global.R. Каталог приложений (name = dash) содержит папку «данные», в которой находится набор данных. Кроме того, эта папка приложения находится в рабочем каталоге проекта. В global.R я прочитал данные, как:Вложение Блестящее приложение в документе knitr

dash <- read.table("data/ntraj1acc.txt", sep=",", header=T) 

Это приложение работает отлично. Теперь я пытаюсь встроить его в презентацию ioslides, которая в противном случае работает хорошо. Пример в разделе External Applications на сайте rmarkdown также отлично работает в моей презентации. Но когда я заменяю путь в system.file на мое приложение, я получаю сообщение об ошибке:

No Shiny application exists at the path "" 

Вот как я заменил путь:

shinyAppDir(
    system.file("dash", package="shiny"), 
    options=list(
    width="100%", height=700 
) 
) 

После ошибки, я попробовал следующее:

shinyAppDir(
    "C:/Users/durraniu/Documents/Trajectory-one/dash", 
    options=list(
    width="100%", height=700 
) 
) 

Но тогда я получил новую ошибку:

object 'dash' not found 

Это означает, что он не анализирует global.R.

Как исправить эту проблему?

+0

Пожалуйста, попробуйте проверить, соответствует ли вы загрузить соответствующую библиотеку (или) not.please также проверить, вы поместите файл в рабочем каталоге.типа getwd(), чтобы увидеть рабочий каталог и поставить там файл, затем запустить, я думаю, он будет работать, спасибо спасибо – Benzamin

ответ

3

system.file("dash", package="shiny") определенно не собирается работать, это ищет папку под названием «тире» внутри самого блестящего пакета, которого, очевидно, не существует.

Также у нас есть ограничение в RMarkdown, что он не вызывает global.R для встроенных приложений Shiny, извините, что этот факт, похоже, не попал в документацию. https://github.com/rstudio/rmarkdown/issues/211

И, наконец, в отличие от обычного приложения Shiny, в встроенных блестящих приложениях RMarkdown вы не можете предположить, что относительные пути от сервера будут корректно решаться; потому что многие приложения могут работать в одном сеансе, в том числе сам документ RMarkdown (который также является приложением Shiny), поэтому нет возможности сделать всех счастливыми.

В настоящее время я рекомендую вам загружать данные непосредственно в документе RMarkdown, а из суб-приложений просто предположить, что данные уже загружены - я считаю, что это работает, пожалуйста, исправьте меня, если я ошибаюсь.

2

Я успешно поместить его приложение в интерактивном глянцевом документе со следующим rmarkdown куском:

``` 
shinyAppDir("D:/Documents/OneDrive/Notes/R-Explore/shiny/01-ages/", 
    options=list(
    width="100%", height=550 
) 
) 
``` 

Все 3 файла: ui.R, server.R и test.Rmd находятся на выше абсолютном пути

1

2018 обновление на этот вопрос:

Благодаря пакету bookdown, knitr теперь может включать в себя HTML-виджеты, Блестящие приложения и произвольные сайты с помощью

knitr::included_url() 
knitr::include_app() 

Заканчивать документ в bookdown книге для большего количества примеров: https://bookdown.org/yihui/bookdown/web-pages-and-shiny-apps.html

Смежные вопросы