Вы должны использовать моноширинный шрифт (как выход R консоли используется моноширинный шрифт)
library(gmodels)
data(infert, package = "datasets")
xx=capture.output(CrossTable(infert$education, infert$induced, expected = TRUE, format="SPSS"))
Решение 1: использовать существующий стиль (из шаблона), который использует моноширинный шрифт, т.е. rRawOutput
в шаблоне по умолчанию
library(ReporteRs)
mydoc <- docx(title = "Summary")
mydoc <- addParagraph(mydoc, xx, stylename = "rRawOutput")
writeDoc(mydoc, file = "Summary.docx")
Решение 2: использование pot
функции для создания фрагмента текста с указанным моноширинного шрифтом
library(ReporteRs)
mydoc <- docx(title = "Summary")
mypot <- pot(paste(xx, collapse = "\n"),
format = textProperties(font.family = "Courier New", font.size = 9))
mydoc <- addParagraph(mydoc, mypot, par.properties = parLeft())
writeDoc(mydoc, file = "Summary.docx")
Решение 3: это один на самом деле не ответить на ваш вопрос, как он не использует gmodels но Мне нравится выход:
library(ReporteRs)
library(rtable)
library(broom)
data(infert, package = "datasets")
myft = freqtable(table(infert$education, infert$induced))
ct = chisq.test(infert$education, infert$induced)
mydoc = docx(title = "Summary")
mydoc = addTitle(mydoc, "Table", level = 2)
mydoc = addFlexTable(mydoc, myft)
mydoc = addTitle(mydoc, "Chi-squared Test", level = 2)
mydoc = addFlexTable(mydoc, vanilla.table(tidy(ct)))
writeDoc(mydoc, file = "Summary.docx")
я могу использовать 'capture.output ((cars2 Кросс $ Страна, cars2 $ Тип, цифры = 2, chisq = T, формат = "SPSS"), файл =" tests.doc ")' для сохранения вывода напрямую к файлу слов. Однако, таким образом, я не смогу использовать другие полезные функции из 'ReporteRs'. Я использую шаблон слова и экспортирую графики и другие объекты в файл слова. – JeanVuda