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

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

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

Сообщение VistaSV30 »

Добрый день!

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

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

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

Поделитесь опытом, советами.
Заранее благодарен!
Последний раз редактировалось VistaSV30 09 июл 2020, 17:10, всего редактировалось 2 раза.
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

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

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

Сообщение VistaSV30 »

gamm писал(а): 09 июл 2020, 15:59RTFM
Это название пакета? Такого пакета на CRAN нет
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane
Аватара пользователя
antonv
Активный участник
Сообщения: 234
Зарегистрирован: 29 ноя 2016, 10:44
Репутация: 114
Откуда: Санкт-Петербург

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

Сообщение antonv »

VistaSV30, это gamm вам так недвусмысленно намекает, что набрав в гугле что-то вроде "r export to word document" вы можете найти желаемую информацию гораздо быстрее.
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 »

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

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

Большинство статей в интернете описывают работу с функциями пакета ReporteRs. А он в 2018 году был исключен из CRAN, а версии ReporteRs, которые нашел в архиве CRAN не поддерживаются R 3.6.3
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

VistaSV30 писал(а): 09 июл 2020, 16:13Это название пакета? Такого пакета на CRAN нет
это не пакет - ошибся с тэгами, прошу пардону. Поправил в сообщении, это https://rmarkdown.rstudio.com/
но это как ggplot, тоже для мазохистов, я его так и не победил. Оказалось проще вставлять картинки и вывод программ в текст в Word.
nplatonov
Интересующийся
Сообщения: 25
Зарегистрирован: 07 фев 2012, 12:00
Репутация: 20

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

Сообщение nplatonov »

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 »

Решил пока делать файл 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»

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

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