Не удается отобразить файлы Reveal.js – Параметризованная отчетность в R с использованием Quarto

Вопрос или проблема

Я пытался создать презентацию 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 требует немного иного подхода к указанию формата.

Вот несколько шагов, которые помогут вам решить эту проблему:

  1. Проверьте синтаксис YAML: Убедитесь, что ваш YAML-формат правильный. В вашем случае отсутствует двоеточие после format. Попробуйте изменить ваш YAML на следующий:

    ---
    title: "ABC"
    format:
     revealjs:
       theme: default
       embed-resources: true
    params:
     token: null
    ---
  2. Измените аргумент 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
    )
  3. Проверка путей файлов: Также убедитесь, что ваш путь к файлу .qmd указан правильно в функции quarto_render и что вы не забыли установить рабочую директорию с помощью setwd().

  4. Убедитесь в наличии необходимых файлов и библиотек: Убедитесь, что все необходимые библиотеки установлены и загружены. Возможно, потребуется обновить quarto и tidyverse до последних версий, чтобы избежать конфликта версий.

После внесения этих изменений попробуйте снова выполнить ваш скрипт. Если у вас всё еще возникают проблемы с рендерингом файлов revealjs, пожалуйста, дайте знать, приведя сообщение об ошибке, и мы сможем рассмотреть более конкретные решения.

Оцените материал
Добавить комментарий

Капча загружается...