我想打印我的R代码结果。 pdf文件中的几个数据帧(大约4-5个)和几个图(4个图),即我想使用一些代码集(我想最后运行)将所有输出导出到pdf文件中或在单独的文件中,即在母码/核心码/主要代码之外(例如使用rmarkdown::render("analysis.R", "pdf_document")
。),我想实现:-
a。我只想打印输出(而不是代码)。为此,发现一些诸如#+echo=FALSE
之类的命令很有用,我在我的母代码文件的开头使用/放置了这些命令,并运行以下命令(在外部文件中):-
library(rmarkdown)
render("Analysis.R", output_format = "pdf_document", output_file = "Aalysis_Output",quiet = TRUE)
b。但是我的表没有被格式化,它们被分成许多表(因为它们有点宽,所以行名也被复制到每个表中,每个表只有一列-我总共有三列-所以我获得3张桌子)。
c。此外,我要删除的每行输出中都显示“ ##”。
还要注意,目前,我不想使用R Markdown或KnitR ...(因为我不希望R代码使用.Rmd文件等)。有什么方法可以轻松地做到这一点-就像我们在C编程中所使用的一样-我们打开一个文本文件,并开始使用fprinft等编写C的结果/输出。)
下面是我要打印在格式正确的pdf文件中的所有数据集(R数据帧)和图(我在R中使用ggplot创建图)。
## 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.
谢谢!
答案 0 :(得分:0)
如果使用的是Rstudio,一种非常简单的方法是编写脚本,然后按Control + shift +K。这将自动创建报告,并且您可以根据需要选择PDF输出。注意:它仍然在使用RMarkdown-但您不必自己编写RMD文件,所以也许可以吗?
答案 1 :(得分:0)
我找到了用于“ 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控制台中运行。