簡體   English   中英

如何在同一個繪圖中繪制兩個“formattable”類數據框並導出為R中的PDF?

[英]How to plot two “formattable” class data frames within the same plot and export to PDF in R?

新的stackoverflow用戶在這里,如果這個問題/上下文不符合標准,那么道歉。 我歡迎反饋。

我有兩個數據框,我想將其可視化為PDF報告中的兩個單獨的表。 其中一個數據幀是一個匯總表,它對來自第二個數據幀的所有更細粒度的數據進行平均。 我希望將匯總表放在更精細的級別表之上。 它們是不同的大小(不同的行數和列數),所以讓我知道這是否是一個問題。

至於實際的代碼/進程,我使用“formattable”包來制作好看的表; 但是我不知道如何繼續前進。 我已經嘗試使用grid.arrange函數(來自gridExtra包)和布局函數 - 但是我得到了grid.arrange的錯誤,並且無法弄清楚如何使用布局函數(即使在花時間審查其他stackoverflow問題之后) )。 代碼如下:

library(formattable)
library(gridExtra)

m1 <- matrix("summary",1,3)
m2 <- matrix("granular",20,5)

t1 <- formattable(data.frame(m1))
t2 <- formattable(data.frame(m2))

layout(t1, t2, nrow=2)
grid.arrange(t1,t2, nrow=2, ncol=1)

對於布局功能,我收到以下錯誤:

Error in layout(t1, t2, nrow = 2) : unused argument (nrow = 2)

並為grid.arrange我收到錯誤:

Error in `$<-.data.frame`(`*tmp*`, "wrapvp", value = list(x = 0.5, y = 0.5,  : 
  replacement has 17 rows, data has 1

最后,至於導出到PDF部分,我甚至無法導出一個formattable類數據框,所以我不知道如何將它們兩者導出為PDF。 它出現在我的工作目錄中,也出現在RStudio的Plots窗口中,但它說: “打開此文檔時出錯。此文件已經打開或正在被其他應用程序使用。” 所以我認為該文件沒有正確處理。 使用:

pdf("SamplePDF.pdf", width=11, height=8)
formattable(data.frame(m1))
dev.off()

我在R中這樣做是因為我正在利用“formattable”包的功能,並意味着最終使用“RDCOMClient”通過電子郵件自動發送這些報告。 另外,SQL和R基本上是我所知道的唯一“代碼”。

謝謝你,並提前為第一次海報道歉!

這樣的東西適合我:

pdf('test00.pdf')
grid.table(t1)
grid.newpage()
grid.table(t2)
dev.off()

雖然這會強制不同的表位於不同的頁面上。

grid.arrangegridExtra包中的其他命令接受grobs,因此一個選項是使用tableGrob命令使表格成為表格。 如果你走這條路線雖然你不再在formattable中,但是從這個例子中可以看出你需要它的任何特殊功能。

library(gridExtra)

m1 <- matrix("summary",1,3)
m2 <- matrix("granular",20,5)

tg1 <- tableGrob(m1)
tg2 <- tableGrob(m2)

grid.arrange(tg1,tg2, nrow=2, ncol=1)

然后繼續導出到pdf。 希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM