2016-08-26 25 views
1

新的stackoverflow用戶在這裏,所以如果這個問題/背景不符合標準,請致歉。我歡迎反饋。如何在同一圖表中繪製兩個「格式表」類數據框並在R中導出爲PDF?

我有兩個數據框,我想在PDF報告中將其視爲兩個單獨的表格。其中一個數據框是一個彙總表,用於平均來自第二個數據框的所有更細粒度的數據。我期待把總結表放在更細粒度的表上。他們是不同的大小(不同數量的行和列),所以讓我知道如果這是一個問題。

至於實際的代碼/過程,我使用「格式表」包來製作好看的表格;但我不知道如何從那裏繼續前進。我曾嘗試使用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部分,我甚至無法導出格式化類數據框之一,所以我不知道如何將它們導出爲PDF。它出現在我的工作目錄中,也出現在RStudio的Plots窗口中,但它顯示:「打開此文檔時出錯,該文件已被打開或正在被另一個應用程序使用。所以我認爲文件沒有正確處理。使用:

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

我R中這樣做,因爲我走的「formattable」包的功能優勢,意味着最終使用「RDCOMClient」這些報告自動通過電子郵件發送出去。另外,SQL和R基本上是我所知道的唯一「代碼」。

謝謝,並提前致歉第一次海報!

回答

0

像這樣的事情對我的作品:

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

雖然這迫使不同的表是在不同的頁面。

0

grid.arrange並在gridExtra包中的其他命令接受grobs,這樣一個選擇是讓你的表到表的tableGrob命令grobs。如果你走這條路線,雖然你不在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。希望有所幫助。

相關問題