Как я могу экспортировать таблицу GT в Word, сохраняя форматирование в RStudio?

Я создал форматированную таблицу в RStudio с помощью пакета gt и готов ее экспортировать. Моя проблема в том, что когда я запускаю функцию gtsave() и указываю, что мой выходной файл является файлом .docx, я успешно получаю выходные данные, но выходные данные не сохраняют ни одного форматирования, для которого я закодировал:

«Успешный» вывод:

Как я могу экспортировать таблицу GT в Word, сохраняя форматирование в RStudio?

Я попытался добавить пакеты webshot2 и rmarkdown, чтобы экспортировать с сохранением форматирования, и он начал выдавать ошибку.

Код:

library(tidyverse)
library(ggplot2)
library(gt)
library(webshot2)
library(rmarkdown)

sampletabledata<-read_csv('sampledata.csv')

gt_sampletabledata<-gt(sampletabledata)

gt_sampletabledata|>tab_header(title = "Count of Households with Pets")%>%
  opt_align_table_header(align='left')%>%
  tab_spanner(label = "Fiscal Year", columns=c(`15/16`,`16/17`,`17/18`,`18/19`,`19/20`,`20/21`,`21/22`,`22/23`,`23/24`))%>%
  tab_style(style=list(cell_text(color='#F76900',weight = 'bold')),locations=cells_column_labels())%>%
  tab_style(style=list(cell_text(color='#000E54',weight = 'bold')),locations=cells_body(col=1))%>%
  tab_style(style=list(cell_text(color='#F76900',weight = 'bold')),locations=cells_column_spanners())%>%
  opt_table_font(google_font(name='Aptos'))

gtsave(gt_sampletabledata, 'gt_sampledata.docx')

Ошибка:

Unknown output format doc
Pandoc can convert to DOCX, but not to DOC.
Error: pandoc document conversion failed with error 22

Это желаемый результат (скриншот из RStudio Viewer):

Как я могу экспортировать таблицу GT в Word, сохраняя форматирование в RStudio?

Это используемый набор данных (для целей устранения неполадок): https://github.com/mrkeville/stackoverflowassist

Здесь происходят две вещи: форматированный объект не назначен gt_sampletabledata; плюс тип выходного файла (DOCX) не распознается. Что касается последнего, все ли пакеты обновлены? Какая версия Р? Публикация данных, вероятно, вызовет дополнительную помощь.

DavoOZ 04.07.2024 03:15

Я верю, что все пакеты обновлены. Что касается первого, можете ли вы объяснить подробнее, почему форматированный объект нельзя назначить gt_sampletabledata? Нужно ли мне присвоить его новой переменной?

Mary Rachel 05.07.2024 17:14

Форматы таблиц не «сохраняются» в конце передаваемых по конвейеру команд. Попробуйте изменить последнюю строку на: opt_table_font(google_font(name='Aptos')) |> gt_sampletabledata

DavoOZ 07.07.2024 12:55

Оцените настройку! К сожалению, когда я добавил эту строку, возникла новая ошибка: Error in gt_sampletabledata : The pipe operator requires a function call as RHS (<input>:9:48)

Mary Rachel 08.07.2024 15:19

Извините, добавленная труба должна была быть правильным назначением.

DavoOZ 16.07.2024 07:12

Это сработало! У него все еще было несколько несоответствий в форматировании, но теперь он намного ближе к желаемому результату. Почему работает присвоение ее обратно исходной переменной, указанной в верхней части блока кода dplyr? Как-то странно назначать его снова, когда он уже был назначен (не жалуюсь, потому что это работает, просто любопытно). Огромное спасибо!

Mary Rachel 17.07.2024 19:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Благодаря DavoOZ за решение, мне не хватало сохранения форматов обратно в исходную переменную в конце конвейерного кода dplyr. Добавление правильной трубы назначения <- является ключевым моментом. Вот обновленный код:

library(tidyverse)
library(gt)

sampletabledata<-read_csv('sampledata.csv')

gt_sampletabledata<-gt(sampletabledata) 

gt_sampletabledata <- gt_sampletabledata%>%
  tab_header(title = "Count of Households with Pets")%>%
  opt_align_table_header(align='left')%>%
  tab_spanner(label = "Fiscal Year", columns=c(`15/16`,`16/17`,`17/18`,`18/19`,`19/20`,`20/21`,`21/22`,`22/23`,`23/24`))%>%
  tab_style(style=list(cell_text(color='#F76900',weight = 'bold')),locations=cells_column_labels())%>%
  tab_style(style=list(cell_text(color='#000E54',weight = 'bold')),locations=cells_body(col=1))%>%
  tab_style(style=list(cell_text(color='#F76900',weight = 'bold')),locations=cells_column_spanners())%>%
  tab_options(table_body.vlines.color=NULL, table.border.left.color=NULL,table.border.right.color = NULL)%>%
  opt_table_font(google_font(name='Aptos'))-> gt_sampletabledata


gtsave(gt_sampletabledata,'gt_sampledata.docx')

Вот результат (не идеальный, но ближе к тому, что я хотел):Обновленный результат

Другие вопросы по теме