2012-05-27 63 views
4

R中是否有任何允許將HTML表格導出爲R Markdown或相關編織文檔的一部分並允許對錶格行邊界進行詳細控制的功能?如何在R中導出HTML表格並控制線邊界?

例如,想象一下,像這樣的矩陣:

x <- matrix(c("", "M", "F", "Good", 
"23", "17", "Bad", "23", "4"), nrow=3, byrow=TRUE) 

什麼命令將輸出,這樣的功能適當的HTML表:

 -------- 
     M  F 
--------------- 
Good 23 17 
--------------- 
Bad 23 4 
--------------- 
+0

只是爲了澄清,你需要知道HTML/CSS會是什麼這樣的一個表,或者你只需​​要知道R中的哪個工具可以讓你創建它? – joran

+0

據我所知,目前沒有Markdown的驅動程序,因爲它們存在latex(xtable,Hmisc,tables)中的latex和html。這是我不理解knitr世界中Markdown炒作的原因之一,即使knitr肯定是文檔方面的突破。 –

+1

嘗試xtable或r2html。一旦你有了HTML標記,你可以用CSS中的邊框完成所有的事情。 – toniedzwiedz

回答

9

你可以嘗試大量的開發名爲我真的很年輕包到pander試圖以pandoc markdown格式打印R對象。

懶例如:

> x <- matrix(c("", "M", "F", "Good", "23", "17", "Bad", "23", "4"), nrow=3, byrow=TRUE) 
> pandoc(x) 

+------+------+------+ 
|  | M | F | 
+------+------+------+ 
| Good | 23 | 17 | 
+------+------+------+ 
| Bad | 23 | 4 | 
+------+------+------+ 

我只是導致像「簡單的表」或「多表」等表格語法的一些功能工作(見Pandoc的自述)。


PS: 你也可以很容易地導出這個表HTML(除了其他格式,如DOCX,ODT等)與(尚未證明)Pandoc引用類,如:

> myReport <- Pandoc$new() 
> myReport$add(x) 
> myReport 

Anonymous's report 
================== 
written by *Anonymous* at *Sun May 27 21:04:22 2012* 

    This report holds 1 block(s). 

--- 

+------+------+------+ 
|  | M | F | 
+------+------+------+ 
| Good | 23 | 17 | 
+------+------+------+ 
| Bad | 23 | 4 | 
+------+------+------+ 


--- 

Proc. time: 0.009 seconds. 

> myReport$format <- 'html' 
> myReport$export() 

Exported to */tmp/pander-4e9c12ff63a6.[md|html]* under 0.031 seconds. 

PS第二:你也可以brew(如sweave)一個帶有Pandoc.brew的文本文檔,它會自動將你的<%=...%>標籤從內部R對象轉換爲Pandoc降價格式。簡單的例子(當然這將與文件輸入工作太,現在我只是brew的R字符向量):

> t <- '# Title 
+ 
+ A nice matrix: 
+ 
+ <%=matrix(c("", "M", "F", "Good", "23", "17", "Bad", "23", "4"), nrow=3, byrow=TRUE)%> 
+ 
+ Bye-bye!' 
> 
> Pandoc.brew(text=t) 
# Title 

A nice matrix: 

+------+------+------+ 
|  | M | F | 
+------+------+------+ 
| Good | 23 | 17 | 
+------+------+------+ 
| Bad | 23 | 4 | 
+------+------+------+ 

Bye-bye! 
+0

+1這看起來很有希望。 –