Shinyapps.ioとshinyを学んでいます。授業に活かしたいと思っています。いくつかの計算を実行し、Rmd から html ファイルを生成し、その html ファイルをユーザーのブラウザの新しいタブに表示したいと思います。Pander の openFileInOS を使用して、Windows 7 で RStudio を使用してこれを行うことができます。Render を使用して、この html ファイルを光沢のあるタブで表示できますが、ブラウザの新しいタブでは表示できません。どうすればいいですか?
# File Downloader. Needs report.rmd in the current directory to make it work
# https://shiny.rstudio.com/articles/generating-reports.html Winston Chang, July 2016
library(shiny)
library(here)
here::here()
ui = fluidPage(
sliderInput("slider", "Slider", 1, 100, 50),
downloadButton("report", "Generate report")
)
server = function(input, output) {
output$report <- downloadHandler(
# For PDF output, change this to "report.pdf"
filename = "report.html",
content = function(file) {
# Copy the report file to a temporary directory before processing it, in
# case we don't have write permissions to the current working dir (which
# can happen when deployed).
tempReport <- file.path(tempdir(), "report.Rmd")
file.copy("report.Rmd", tempReport, overwrite = TRUE)
# Set up parameters to pass to Rmd document
params <- list(n = input$slider)
# Knit the document, passing in the `params` list, and eval it in a
# child of the global environment (this isolates the code in the document
# from the code in this app).
rmarkdown::render(tempReport, output_file = file,
params = params,
envir = new.env(parent = globalenv())
) # downloads report.html
# ???
# How do I open the report.html file in a NEW tab in Browser, not a tab within Shiny?
#
# )
} # content ends
) # downloadHandler ends
} # server ends
shinyApp(ui = ui, server = server)
任意の rmd ファイル。これがreport.rmdファイルコードです
---
title: "Dummy Report"
author: "John Doe "
date: "April 13, 2019"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
R マークダウン
これは R マークダウン ドキュメントです。Markdown は、HTML、PDF、および MS Word ドキュメントを作成するための単純な書式設定構文です。R Markdown の使用の詳細については、http://rmarkdown.rstudio.comを参照してください。
ニットボタンをクリックすると、コンテンツと、ドキュメント内に埋め込まれた R コード チャンクの出力の両方を含むドキュメントが生成されます。次のように R コード チャンクを埋め込むことができます。
summary(cars)
プロットを含む
次のように、プロットを埋め込むこともできます。
plot(pressure)
echo = FALSE
プロットを生成した R コードの出力を防ぐために、パラメーターがコード チャンクに追加されたことに注意してください。