Вопрос или проблема
Я пытался создать презентацию revealjs
с использованием параметризованной отчетности. Хотя я указал формат revealjs в заголовке YAML и установил output_format
на “revealjs” в функции quarto_render
, я все равно получил стандартный HTML-файл без возможностей revealjs.
Когда я напрямую рендерю файл revealjs.qmd
(Individual_Report.qmd
), все работает нормально. Проблема возникает только при использовании R-скрипта с параметризованной отчетностью.
Вот заголовок YAML:
---
title: "ABC"
format:
revealjs:
theme: default
embed-resources: true
params:
token: null
---
Вот R-скрипт:
library(quarto)
library(tidyverse)
library(haven)
library(here)
setwd("S:/Projects/Benchmarking/Individual Reports Output")
data <- read_dta('S:/Projects/Benchmarking/Data/data_respondents_benchmarking.dta')
data <- data %>%
mutate(across(c(function_group, function_subgroup, token), as_factor)) %>%
mutate(across(-c(function_group, function_subgroup, token), as.numeric))
set.seed(123)
subset_data <- data %>%
slice_sample(n = 2)
tokens <-
subset_data |>
distinct(token) |>
pull(token) |>
as.character()
reports <-
tibble(
output_file = file.path(str_glue("{tokens}.html")),
execute_params = map(tokens, ~list(token = .))
)
pwalk(reports,
quarto_render,
input = here::here("S:/Projects/Benchmarking/Individual_Report.qmd"),
output_format = "revealjs",
.progress = TRUE
)
Кто-нибудь видит, в чем может быть проблема?
Ответ или решение
Проблема, с которой вы столкнулись, скорее всего связана со способом указания формата вывода в функции quarto_render
. Хотя вы правильно настроили YAML-метаданные в вашем файле .qmd для использования форматирования revealjs
, функция quarto_render
требует немного иного подхода к указанию формата.
Вот несколько шагов, которые помогут вам решить эту проблему:
-
Проверьте синтаксис YAML: Убедитесь, что ваш YAML-формат правильный. В вашем случае отсутствует двоеточие после
format
. Попробуйте изменить ваш YAML на следующий:--- title: "ABC" format: revealjs: theme: default embed-resources: true params: token: null ---
-
Измените аргумент
output_format
вquarto_render
: Вместо использования"revealjs"
как строки, используйте список с указанием формата. Запишите это следующим образом:pwalk(reports, quarto_render, input = here::here("S:/Projects/Benchmarking/Individual_Report.qmd"), output_format = list(revealjs = NULL), .progress = TRUE )
-
Проверка путей файлов: Также убедитесь, что ваш путь к файлу .qmd указан правильно в функции
quarto_render
и что вы не забыли установить рабочую директорию с помощьюsetwd()
. - Убедитесь в наличии необходимых файлов и библиотек: Убедитесь, что все необходимые библиотеки установлены и загружены. Возможно, потребуется обновить
quarto
иtidyverse
до последних версий, чтобы избежать конфликта версий.
После внесения этих изменений попробуйте снова выполнить ваш скрипт. Если у вас всё еще возникают проблемы с рендерингом файлов revealjs
, пожалуйста, дайте знать, приведя сообщение об ошибке, и мы сможем рассмотреть более конкретные решения.