Programla oluşturulan Rmarkdown'da HTML widget'larını 'yazdırma'
Oct 19 2020
Programlı olarak bazı Rmarkdown oluşturmaya çalışıyorum ve bölümlerden biri bir HTML pencere öğesi içeriyor. Bunlar, işlevimde sonuncuysa iyi çıktı. Ancak, onları printbir arsa için yapacağınız gibi arkasına başka bir şey koyabilmem için onları sararsam herhangi bir çıktı üretmezler.
Belki de bu knitr, baskıyı ele alma şekliyle ilgili bir şey emin değilim. Ancak, HTML widget'larının programla oluşturulan Rmarkdown'daki grafikler gibi davranmasını nasıl sağlayabileceğimi bilen var mı?
Örnek .Rmd
---
title: "R Notebook"
output:
html_document:
df_print: paged
---
```{r}
ex_plot <- ggplot2::ggplot(iris, ggplot2::aes(Sepal.Length,Sepal.Width)) +
ggplot2::geom_point()
gen_rmarkdown_widget_last <- function() {
cat("# Head 1\n\n")
DT::datatable(iris)
}
gen_rmarkdown_plots <- function() {
cat("# Head 1\n\n")
print(ex_plot)
cat("# Head 2\n\n")
}
gen_rmarkdown_widgets <- function() {
cat("# Head 1\n\n")
print(DT::datatable(iris))
# tried loading from file
# tmp <- tempfile()
# htmlwidgets::saveWidget(DT::datatable(iris), tmp)
# knitr::include_url(tmp)
# tried a different widget
# print(plotly::ggplotly(ex_plot))
cat("# Head 2\n\n")
}
```
```{r, results='asis'}
# works fine
gen_rmarkdown_widget_last()
```
```{r, results='asis'}
# works fine
gen_rmarkdown_plots()
```
```{r, results='asis'}
# Can't have an HTML widget if it is followed by other things
gen_rmarkdown_widgets()
```
Yanıtlar
1 Waldi Oct 19 2020 at 18:12
Sorun burada tartışıldı .
Bağımlılıkların manuel olarak eklenmesi şu şekilde yapılır:
data.frame() %>%
DT::datatable() %>%
knitr::knit_print() %>%
attr('knit_meta') %>%
knitr::knit_meta_add() %>%
invisible()
Sağladığınız örnekte:
---
title: "R Notebook"
output:
html_document:
df_print: paged
---
```{r}
library(dplyr)
#load dependencies
data.frame() %>%
DT::datatable() %>%
knitr::knit_print() %>%
attr('knit_meta') %>%
knitr::knit_meta_add() %>%
invisible()
ex_plot <- ggplot2::ggplot(iris, ggplot2::aes(Sepal.Length,Sepal.Width)) +
ggplot2::geom_point()
gen_rmarkdown_widget_last <- function() {
cat("# Head 1\n\n")
DT::datatable(iris)
}
gen_rmarkdown_plots <- function() {
cat("# Head 1\n\n")
print(ex_plot)
cat("# Head 2\n\n")
}
gen_rmarkdown_widgets <- function() {
cat("# Head 1\n\n")
cat(knitr::knit_print(DT::datatable(iris)))
cat("\n \n")
cat("# Head 2\n\n")
}
```
```{r, results='asis'}
gen_rmarkdown_widgets()
```
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı