RShiny: Как передать переменную из Server.R в сценарий RMD

Недавно я поигрался с RShiny и создал рабочий веб-интерфейс, который принимает два параметра «дата» и «местоположение» и возвращает мне серию графиков и таблиц из нашей базы данных, которые соответствуют критериям.

Что я хотел бы сделать с этим, так это дать пользователям возможность загружать все данные и графики в форме отчета RMD в формате HTML.

так что у меня есть 1. UI.R с кнопкой загрузки 2. DownloadHandler Server.R запускает мой сценарий RMD 3. ????

UI.R

downloadButton('downloadData','Download')

Server.R

output$downloadData<- downloadHandler(filename ="myData.html", 
                                  content= function(file= NULL){
                                    knit(thread.RMD) 
                                  }

person Green Demon    schedule 09.04.2013    source источник
comment
Не могли бы вы вставить здесь ответ Уинстона? groups.google.com/group/shiny-discuss/browse_thread/thread/   -  person Yihui Xie    schedule 17.04.2013
comment
Спасибо за напоминание. Он был обновлен.   -  person Green Demon    schedule 18.04.2013


Ответы (1)


Вот ответ, который я получил от группы Shiny Google: https://groups.google.com/forum/?fromgroups=#!topic/shiny-discuss/XmW9V014EtI

Функция, указанная как аргумент content для downloadHandler, принимает один параметр - file. При нажатии кнопки загрузки обработчик загрузки вызывает эту функцию и использует аргумент файла, чтобы сообщить ему, где следует сохранить выходной файл.

Я не вижу способа установить имя выходного файла из knit2html (), но вы можете просто переименовать его после его создания:

  output$downloadData <- downloadHandler(
    filename ="ShinyData.html", 
    content = function(file) {
      knit2html("myreport.rmd")
      file.rename("myreport.html", file)
    }
  )

(Кроме того, вам не хватает закрывающей круглой скобки в ui.r.)

-Уинстон

person Green Demon    schedule 11.04.2013