Создание отчетов в R

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Создание отчетов в R

Сообщение VistaSV30 » 09 июл 2020, 14:20

Добрый день!

Хочу попробовать сделать проект текста отчета в формате читаемом Microsoft Word.
Нашел информацию, что это делается средствами пакетов rtf или docxtools.
Раньше я подобное уже делал, по схеме SQL -> Excel -> Word.
Интересно попробовать SQL -> R -> Word.

Предполагаемая структура документа:
Заголовок 1
Заголовок 2
Текст абзаца
Диаграмма
Таблица
...
и т.д.

С текстом абзацев, таблицами и диаграммами вроде бы получается сделать средствами rtf с остальным пытаюсь разобраться.
Из самого необходимого пока не получается сделать отступы в первой строке абзаца.

Поделитесь опытом, советами.
Заранее благодарен!
Последний раз редактировалось VistaSV30 09 июл 2020, 17:10, всего редактировалось 2 раза.
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

gamm
Гуру
Сообщения: 4048
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: Создание отчетов в R

Сообщение gamm » 09 июл 2020, 15:59

Последний раз редактировалось gamm 09 июл 2020, 17:33, всего редактировалось 1 раз.

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Re: Создание отчетов в R

Сообщение VistaSV30 » 09 июл 2020, 16:13

gamm писал(а):
09 июл 2020, 15:59
RTFM
Это название пакета? Такого пакета на CRAN нет
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Аватара пользователя
antonv
Активный участник
Сообщения: 229
Зарегистрирован: 29 ноя 2016, 10:44
Репутация: 114
Откуда: Санкт-Петербург

Re: Создание отчетов в R

Сообщение antonv » 09 июл 2020, 16:38

VistaSV30, это gamm вам так недвусмысленно намекает, что набрав в гугле что-то вроде "r export to word document" вы можете найти желаемую информацию гораздо быстрее.

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Re: Создание отчетов в R

Сообщение VistaSV30 » 09 июл 2020, 17:15

:wink: понятно! "Учи матчасть"!

Мне пока только не удается сделать стиль для абзаца, чтоб потом в Word можно было по всему документу эти абзацы отформатировать.
С остальным вроде разобрался.

Большинство статей в интернете описывают работу с функциями пакета ReporteRs. А он в 2018 году был исключен из CRAN, а версии ReporteRs, которые нашел в архиве CRAN не поддерживаются R 3.6.3
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

gamm
Гуру
Сообщения: 4048
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: Создание отчетов в R

Сообщение gamm » 09 июл 2020, 17:35

VistaSV30 писал(а):
09 июл 2020, 16:13
Это название пакета? Такого пакета на CRAN нет
это не пакет - ошибся с тэгами, прошу пардону. Поправил в сообщении, это https://rmarkdown.rstudio.com/
но это как ggplot, тоже для мазохистов, я его так и не победил. Оказалось проще вставлять картинки и вывод программ в текст в Word.

nplatonov
Интересующийся
Сообщения: 25
Зарегистрирован: 07 фев 2012, 12:00
Репутация: 20

Re: Создание отчетов в R

Сообщение nplatonov » 11 июл 2020, 05:33

Rmarkdown.

Создаете файл "res1.Rmd" в UTF-8 с содержимым:

Код: Выделить всё

---
output:
   word_document:
      reference_docx: ~
---

# Заголовок 1

## Заголовок 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quamquam tu hanc copiosiorem etiam soles dicere. Aliter autem vobis placet. Res enim concurrent contrariae. Num quid tale Democritus? An eiusdem modi? Suo genere perveniant ad extremum; 

```{r, echo=FALSE}
pie(c(Sky = 78, "Sunny side of pyramid" = 17, "Shady side of pyramid" = 5),
    init.angle = 315, col = c("deepskyblue", "yellow", "yellow3"), border = FALSE)
```

```{r, echo=FALSE}
knitr::kable(head(mtcars))
```
2. Из R CLI/GIU:

Код: Выделить всё

rmarkdown::render("res1.Rmd")
3. На выходе "ref1.docx". Копируете или переименовывайте в "res1-ref.docx". Открываете в офисе, в стиле "Body text" делаете отступ. Сохраняете.

4. Возвращаетесь к "res1.Rmd". Меняете "reference_docx: ~" на reference_docx: "res1-ref.docx"

Код: Выделить всё

---
output:
   word_document:
      reference_docx: res1-ref.docx
---
5. Из R CLI/GIU:

Код: Выделить всё

rmarkdown::render("res1.Rmd")
Можете сразу к шагам 4-5, если есть шаблон с нужными стилями.

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Re: Создание отчетов в R

Сообщение VistaSV30 » 11 июл 2020, 18:32

Решил пока делать файл Word средствами пакета rtf, а окончательное форматирование выполнять в Word

Код: Выделить всё

# Создание файла отчета в формате Word
library(rtf)
output <- "Report.doc" # Открыть файл "Report.doc" в рабочей директории 
rtf <- RTF(output, font.size = 14) #  font.size – размер шрифта документа
addParagraph(rtf, "\\bЗаголовок\\b0") #Заголовок выделен жирным шрифтом
addParagraph(rtf, "Текст первого параграфа")
addParagraph(rtf, "Текст второго параграфа")

# Таблица
tab <- table(iris$Species,floor(iris$Sepal.Length)) 
names(dimnames(tab)) <- c("Species","Sepal Length") 
addParagraph(rtf, "Таблица N - Образец таблицы")
addTable(rtf, tab, font.size = 12, row.names = TRUE, NA.string = "-", 
         col.widths = c(1, rep(0.5, 4)) )

# Диаграмма
addPlot(rtf,plot.fun=plot,width=6,height=6,res=300, iris[,1],iris[,2])
addParagraph(rtf, "Рис.Базовая графика")

# Диаграмма ggplot2
library(ggplot2)
mt <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point()
print(mt)
addPlot(rtf, plot.fun = print, width = 5,height = 4, res = 300, mt)
addParagraph(rtf, "Рис.Диаграмма ggplot2")

done(rtf) # Запись текста в файл "Report.doc"
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей