Печать выходных данных (фреймы данных / матрицы) вместе с графиками в формате .pdf в R - PullRequest
0 голосов
/ 26 апреля 2019

Я хотел бы напечатать мой результат кодов R, а именно. несколько кадров данных (примерно 4-5) и несколько графиков (4 графика) в файле PDF, т.е. я хочу экспортировать весь вывод в файл PDF с использованием некоторого набора кодов (который я хотел бы запустить в конце) или в отдельном файле, т. е. вне материнской / основной / основной кодов (например, используя rmarkdown::render("analysis.R", "pdf_document"). Также я хотел бы добиться: -

а. Я хочу напечатать только вывод (а не кодирование). Для этого были сочтены полезными некоторые команды, такие как #+echo=FALSE, которые я использую / помещаю в начало файла с исходным кодом и запускаю следующие команды (во внешнем файле): -

library(rmarkdown) render("Analysis.R", output_format = "pdf_document", output_file = "Aalysis_Output",quiet = TRUE)

б. Но мои таблицы не отформатированы, они разбиваются на множество таблиц (поскольку они немного широки, и поэтому имена строк реплицируются и в каждой таблице, и в каждой таблице только один столбец - у меня всего три столбца - так что я получаю 3 таблицы).

с. Более того, я получаю «##» в каждой строке / строке вывода, которые я хочу удалить.

Также обратите внимание, что в настоящее время я не хочу использовать R Markdown или KnitR ... (поскольку я не хочу файл .Rmd и т. Д. Для моих кодов R). Есть ли способ сделать то же самое легко - как то, что мы используем для программирования на С - мы открываем текстовый файл и начинаем записывать наши результаты / вывод на C, используя fprinft и т. Д.)

Ниже приведены все мои наборы данных (R-фреймы данных) и графики (я использовал ggplot в R для создания графиков), которые я хочу распечатать в хорошо отформатированном PDF-файле.

## Printing all the results & plots ##

print(base_result, right = T)   # Base Results

print(DSA_AP, right = T)        # DSA for Drug A vs P
Torn_AP                         # Tornado for Drug A vs P

print(DSA_AQ, right = T)        # DSA for Drug A vs Q
Torn_AQ                         # Tornado for Drug A vs Q

print(DSA_AR, right = T)        # DSA for Drug A vs R
Torn_AR                         # Tornado for Drug A vs R

print(DSA_AS, right = T)        # DSA for Drug A vs S
Torn_AS                         # Tornado for Drug A vs S

Я попробовал следующие коды, чтобы получить результат: -

Set-1 Codes: Issue it’s not printing the tables/data-frames (but plotting all the plots only).

    pdf("MyOutput_12.pdf", paper = "A4")

    print(base_result, right = T)   # Base Results 
    # Issue: It is only coming as a print in the console and similarly for below tables.

    print(DSA_AP, right = T)        # DSA for Drug A vs P
    Torn_AP                         # Tornado for Drug A vs P

    print(DSA_AQ, right = T)        # DSA for Drug A vs Q
    Torn_AQ                         # Tornado for Drug A vs Q

    print(DSA_AR, right = T)        # DSA for Drug A vs R
    Torn_AR                         # Tornado for Drug A vs R

    print(DSA_AS, right = T)        # DSA for Drug A vs S
    Torn_AS                         # Tornado for Drug A vs S

    dev.off()

Set-2 Codes: Now, it’s printing the tables but it is printing one over the previous table or plot i.e. overwriting (below are the codes for printing three datasets and two plots).

    library(gridExtra)

    pdf("MyOutput_14.pdf", paper = "A4")

    grid.table(base_result)

    grid.table(DSA_AP)              # DSA for Drug A vs P
    Torn_AP                         # Tornado for Drug A vs P


    grid.table(DSA_AQ)              # DSA for Drug A vs Q
    Torn_AQ                         # Tornado for Drug A vs Q

    dev.off()

Moreover, in the set-2 the tables are some big and getting truncated i.e. the right part of each table is missing (getting cut in pdf file) -- need to adjust width etc. of tables in the pdf file print.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Я нашел коды, предназначенные для целей «a» и «c», и для «b» я теперь уменьшил заголовки столбцов и имена строк моих фреймов данных (выходных таблиц), чтобы сэкономить место / страницу, и теперь я получаю требуемый вывод. Я использовал следующие коды: -

knitr::opts_chunk$set(fig.width = 7, fig.height = 5, fig.align = 'left', dpi = 96, echo = F, comment = "", message = F, warning = F)

# For PDF Output
rmarkdown::render("Model_3.3.R", output_format = "pdf_document", output_file = "Output_3.3_01.pdf")

# For HTML Output
rmarkdown::render("Model_3.3.R", output_format = "html_document", output_file = "Output_3.3_01.html")

Примечание. Эти коды необходимы для запуска вне материнских кодов, т. Е. В отдельном файле или в консоли R / RStudio.

0 голосов
/ 28 апреля 2019

Очень простой способ, если вы используете Rstudio, это написать свой скрипт, затем нажать control + shift + K. Это автоматически создает отчет, и вы можете выбрать вывод PDF, если хотите. Примечание: под капотом все еще используется RMarkdown - но вам не нужно самостоятельно писать файл RMD, так что, может быть, это нормально?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...