mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2025-09-12 09:59:39 +02:00
abandoned quarto to render report using rmarkdown instead. works smoothly!
This commit is contained in:
parent
159750fa62
commit
d51fd27996
7 changed files with 165 additions and 55 deletions
21
R/helpers.R
21
R/helpers.R
|
@ -50,6 +50,27 @@ write_quarto <- function(data,...) {
|
|||
)
|
||||
}
|
||||
|
||||
write_rmd <- function(data,...) {
|
||||
# Exports data to temporary location
|
||||
#
|
||||
# I assume this is more secure than putting it in the www folder and deleting
|
||||
# on session end
|
||||
|
||||
# temp <- base::tempfile(fileext = ".rds")
|
||||
# readr::write_rds(data, file = here)
|
||||
|
||||
readr::write_rds(data, file = "www/web_data.rds")
|
||||
|
||||
## Specifying a output path will make the rendering fail
|
||||
## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041
|
||||
## Outputs to the same as the .qmd file
|
||||
rmarkdown::render(
|
||||
params = list(data.file = "web_data.rds"),
|
||||
# execute_params = list(data.file = temp),
|
||||
...
|
||||
)
|
||||
}
|
||||
|
||||
#' Flexible file import based on extension
|
||||
#'
|
||||
#' @param file file name
|
||||
|
|
|
@ -1160,6 +1160,27 @@ write_quarto <- function(data,...) {
|
|||
)
|
||||
}
|
||||
|
||||
write_rmd <- function(data,...) {
|
||||
# Exports data to temporary location
|
||||
#
|
||||
# I assume this is more secure than putting it in the www folder and deleting
|
||||
# on session end
|
||||
|
||||
# temp <- base::tempfile(fileext = ".rds")
|
||||
# readr::write_rds(data, file = here)
|
||||
|
||||
readr::write_rds(data, file = "www/web_data.rds")
|
||||
|
||||
## Specifying a output path will make the rendering fail
|
||||
## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041
|
||||
## Outputs to the same as the .qmd file
|
||||
rmarkdown::render(
|
||||
params = list(data.file = "web_data.rds"),
|
||||
# execute_params = list(data.file = temp),
|
||||
...
|
||||
)
|
||||
}
|
||||
|
||||
#' Flexible file import based on extension
|
||||
#'
|
||||
#' @param file file name
|
||||
|
@ -3874,7 +3895,7 @@ ui <- bslib::page_fixed(
|
|||
),
|
||||
shiny::p(
|
||||
style = "margin: 1; color: #888;",
|
||||
"AG Damsbo | v", format(Sys.Date(),format = '%y%m%d')," | AGPLv3 license | ", shiny::tags$a("Source on Github", href = "https://github.com/agdamsbo/freesearcheR/", target = "_blank", rel = "noopener noreferrer")
|
||||
"AG Damsbo | v", format(Sys.time(),format = '%y%m%d_%H%M')," | AGPLv3 license | ", shiny::tags$a("Source on Github", href = "https://github.com/agdamsbo/freesearcheR/", target = "_blank", rel = "noopener noreferrer")
|
||||
),
|
||||
)
|
||||
)
|
||||
|
@ -3916,7 +3937,7 @@ library(gtsummary)
|
|||
|
||||
# source("functions.R")
|
||||
|
||||
|
||||
data(mtcars)
|
||||
|
||||
# light <- custom_theme()
|
||||
#
|
||||
|
@ -4559,11 +4580,13 @@ server <- function(input, output, session) {
|
|||
})
|
||||
}
|
||||
|
||||
rv$list$regression$table <- out |>
|
||||
tbl_merge()
|
||||
rv$list$regression$tables <- out
|
||||
|
||||
gtsummary::as_kable(rv$list$regression$table) |>
|
||||
readr::write_lines(file="./www/_regression_table.md")
|
||||
# rv$list$regression$table <- out |>
|
||||
# tbl_merge()
|
||||
|
||||
# gtsummary::as_kable(rv$list$regression$table) |>
|
||||
# readr::write_lines(file="./www/_regression_table.md")
|
||||
|
||||
rv$list$input <- input
|
||||
},
|
||||
|
@ -4579,8 +4602,9 @@ server <- function(input, output, session) {
|
|||
)
|
||||
|
||||
output$table2 <- gt::render_gt({
|
||||
shiny::req(rv$list$regression$table)
|
||||
rv$list$regression$table |>
|
||||
shiny::req(rv$list$regression$tables)
|
||||
rv$list$regression$tables |>
|
||||
tbl_merge() |>
|
||||
gtsummary::as_gt() |>
|
||||
gt::tab_header(gt::md(glue::glue("**Table 2: {rv$list$regression$params$descr}**")))
|
||||
})
|
||||
|
@ -4659,12 +4683,22 @@ server <- function(input, output, session) {
|
|||
# shiny::req(rv$list$regression)
|
||||
## Notification is not progressing
|
||||
## Presumably due to missing
|
||||
|
||||
#Simplified for .rmd output attempt
|
||||
format <- ifelse(type=="docx","word_document","odt_document")
|
||||
|
||||
shiny::withProgress(message = "Generating the report. Hold on for a moment..", {
|
||||
|
||||
rv$list |>
|
||||
write_quarto(
|
||||
output_format = type,
|
||||
input = file.path(getwd(), "www/report.qmd")
|
||||
write_rmd(
|
||||
output_format = format,
|
||||
input = file.path(getwd(), "www/report.rmd")
|
||||
)
|
||||
|
||||
# write_quarto(
|
||||
# output_format = type,
|
||||
# input = file.path(getwd(), "www/report.qmd")
|
||||
# )
|
||||
})
|
||||
file.rename(paste0("www/report.", type), file)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,6 @@ account: cognitiveindex
|
|||
server: shinyapps.io
|
||||
hostUrl: https://api.shinyapps.io/v1
|
||||
appId: 13786206
|
||||
bundleId: 9687600
|
||||
bundleId: 9688503
|
||||
url: https://cognitiveindex.shinyapps.io/freesearcheR_dev/
|
||||
version: 1
|
||||
|
|
|
@ -29,7 +29,7 @@ library(gtsummary)
|
|||
|
||||
# source("functions.R")
|
||||
|
||||
|
||||
data(mtcars)
|
||||
|
||||
# light <- custom_theme()
|
||||
#
|
||||
|
@ -672,11 +672,13 @@ server <- function(input, output, session) {
|
|||
})
|
||||
}
|
||||
|
||||
rv$list$regression$table <- out |>
|
||||
tbl_merge()
|
||||
rv$list$regression$tables <- out
|
||||
|
||||
gtsummary::as_kable(rv$list$regression$table) |>
|
||||
readr::write_lines(file="./www/_regression_table.md")
|
||||
# rv$list$regression$table <- out |>
|
||||
# tbl_merge()
|
||||
|
||||
# gtsummary::as_kable(rv$list$regression$table) |>
|
||||
# readr::write_lines(file="./www/_regression_table.md")
|
||||
|
||||
rv$list$input <- input
|
||||
},
|
||||
|
@ -692,8 +694,9 @@ server <- function(input, output, session) {
|
|||
)
|
||||
|
||||
output$table2 <- gt::render_gt({
|
||||
shiny::req(rv$list$regression$table)
|
||||
rv$list$regression$table |>
|
||||
shiny::req(rv$list$regression$tables)
|
||||
rv$list$regression$tables |>
|
||||
tbl_merge() |>
|
||||
gtsummary::as_gt() |>
|
||||
gt::tab_header(gt::md(glue::glue("**Table 2: {rv$list$regression$params$descr}**")))
|
||||
})
|
||||
|
@ -772,12 +775,22 @@ server <- function(input, output, session) {
|
|||
# shiny::req(rv$list$regression)
|
||||
## Notification is not progressing
|
||||
## Presumably due to missing
|
||||
|
||||
#Simplified for .rmd output attempt
|
||||
format <- ifelse(type=="docx","word_document","odt_document")
|
||||
|
||||
shiny::withProgress(message = "Generating the report. Hold on for a moment..", {
|
||||
|
||||
rv$list |>
|
||||
write_quarto(
|
||||
output_format = type,
|
||||
input = file.path(getwd(), "www/report.qmd")
|
||||
write_rmd(
|
||||
output_format = format,
|
||||
input = file.path(getwd(), "www/report.rmd")
|
||||
)
|
||||
|
||||
# write_quarto(
|
||||
# output_format = type,
|
||||
# input = file.path(getwd(), "www/report.qmd")
|
||||
# )
|
||||
})
|
||||
file.rename(paste0("www/report.", type), file)
|
||||
}
|
||||
|
|
|
@ -510,7 +510,7 @@ ui <- bslib::page_fixed(
|
|||
),
|
||||
shiny::p(
|
||||
style = "margin: 1; color: #888;",
|
||||
"AG Damsbo | v", format(Sys.Date(),format = '%y%m%d')," | AGPLv3 license | ", shiny::tags$a("Source on Github", href = "https://github.com/agdamsbo/freesearcheR/", target = "_blank", rel = "noopener noreferrer")
|
||||
"AG Damsbo | v", format(Sys.time(),format = '%y%m%d_%H%M')," | AGPLv3 license | ", shiny::tags$a("Source on Github", href = "https://github.com/agdamsbo/freesearcheR/", target = "_blank", rel = "noopener noreferrer")
|
||||
),
|
||||
)
|
||||
)
|
||||
|
|
|
@ -13,34 +13,17 @@ params:
|
|||
```{r}
|
||||
#| message: false
|
||||
#| warning: false
|
||||
# if (!requireNamespace("gtsummary")){
|
||||
# install.packages("gtsummary")
|
||||
# } else {
|
||||
# library(gtsummary)
|
||||
# }
|
||||
#
|
||||
# if (!requireNamespace("gt")){
|
||||
# install.packages("gt")
|
||||
# } else {
|
||||
# library(gt)
|
||||
# }
|
||||
#
|
||||
# if (!requireNamespace("readr")){
|
||||
# install.packages("readr")
|
||||
# } else {
|
||||
# library(readr)
|
||||
# }
|
||||
# requireNamespace("gtsummary")
|
||||
# requireNamespace("gt")
|
||||
# require(gt)
|
||||
# require(flextable)
|
||||
# if (!requireNamespace("readr")){
|
||||
# install.packages("readr")
|
||||
# }
|
||||
web_data <- readr::read_rds(file = params$data.file)
|
||||
# library(gt)
|
||||
# library(flextable)
|
||||
# library(freesearcheR)
|
||||
library(gtsummary)
|
||||
library(gt)
|
||||
|
||||
tbl_merge <- function(data) {
|
||||
if (is.null(names(data))) {
|
||||
data |> gtsummary::tbl_merge()
|
||||
} else {
|
||||
data |> gtsummary::tbl_merge(tab_spanner = names(data))
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
@ -55,13 +38,16 @@ Analyses were conducted in the *freesearcheR* data analysis web-tool based on R
|
|||
|
||||
Below are the baseline characteristics.
|
||||
|
||||
{{< include _table1.md >}}
|
||||
```{r, results = 'asis'}
|
||||
tbl <- gtsummary::as_gt(web_data$table1)
|
||||
knitr::knit_print(tbl)
|
||||
```
|
||||
|
||||
Below are results from the univariable and multivariable regression analyses.
|
||||
Below are the results from the
|
||||
|
||||
|
||||
```{r}
|
||||
gtsummary::tbl_summary(mtcars,by=cyl)
|
||||
```{r, results = 'asis'}
|
||||
reg_tbl <- web_data$regression$tables
|
||||
knitr::knit_print(tbl_merge(reg_tbl))
|
||||
```
|
||||
|
||||
## Discussion
|
||||
|
|
56
inst/apps/data_analysis_modules/www/report.rmd
Normal file
56
inst/apps/data_analysis_modules/www/report.rmd
Normal file
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: "freesearcheR analysis results"
|
||||
date: today
|
||||
format: docx
|
||||
author: freesearcheR Tool
|
||||
toc: false
|
||||
params:
|
||||
data.file: NA
|
||||
---
|
||||
|
||||
```{r setup, echo = FALSE}
|
||||
knitr::opts_chunk$set(echo = FALSE, message=FALSE, warning=FALSE)
|
||||
```
|
||||
|
||||
|
||||
```{r}
|
||||
web_data <- readr::read_rds(file = params$data.file)
|
||||
library(gtsummary)
|
||||
library(gt)
|
||||
|
||||
tbl_merge <- function(data) {
|
||||
if (is.null(names(data))) {
|
||||
data |> gtsummary::tbl_merge()
|
||||
} else {
|
||||
data |> gtsummary::tbl_merge(tab_spanner = names(data))
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
||||
Research should be free and open with easy access for all. The freesearcheR tool attempts to help lower the bar to participate in contributing to science by making guided data analysis easily accessible in the web-browser.
|
||||
|
||||
## Methods
|
||||
|
||||
Analyses were conducted in the *freesearcheR* data analysis web-tool based on R version 4.4.1.
|
||||
|
||||
## Results
|
||||
|
||||
Below are the baseline characteristics.
|
||||
|
||||
```{r, results = 'asis'}
|
||||
tbl <- gtsummary::as_gt(web_data$table1)
|
||||
knitr::knit_print(tbl)
|
||||
```
|
||||
|
||||
Below are the results from the
|
||||
|
||||
```{r, results = 'asis'}
|
||||
reg_tbl <- web_data$regression$tables
|
||||
knitr::knit_print(tbl_merge(reg_tbl))
|
||||
```
|
||||
|
||||
## Discussion
|
||||
|
||||
Good luck on your further work!
|
Loading…
Add table
Reference in a new issue