我有一个数据框,我想把它输出到一个超文本标记语言文件中,通过output和RMarkdown作为一个带有条件格式的表格。示例:
n <- data.frame(x = c(1,1,1,1,1), y = c(0,1,0,1,0))
> n
x y
1 1 0
2 1 1
3 1 0
4 1 1
5 1 0
我希望高亮显示具有不同x和y值的行。如果HTML文件中的输出是一个HTML表,那就更好了,但是如果不是这样,图像也是可以的。
发布于 2013-03-14 16:45:56
我一直想在我的pander package中使用这个特性来扩展pandoc.table
,但是没有时间这么做。但这个问题真的很鼓舞人心,可能会在接下来的几天内完成。在此之前,下面的内容如何:
library(pander)
N <- Pandoc(x= c(1,1,1,1,1),y= c(0,1,0,1,0))
对于(i in c(1,3,5)) ni,<- pandoc.strong.return(n1,)
method
brew
语法将标记缩减为例如:Pandoc.brew(文本= '<%=n%>',输出=临时文件(),转换= 'html')
更新:我已经更新了pander
,可以采用一些新的参数来轻松地突出显示行/列/单元格。虽然我仍在开发一些更多的助手函数,以使此过程更容易,但这里有一个快速演示,以便您可以看到它如何帮助您的工作流程:
> pandoc.table(n, emphasize.rows = c(1, 3, 5))
-------
x y
--- ---
*1* *0*
1 1
*0* *1*
1 1
*1* *0*
-------
> pandoc.table(n, emphasize.strong.cells = which(n == 1, arr.ind = TRUE))
-----------
x y
----- -----
**1** 0
**1** **1**
**1** 0
**1** **1**
**1** 0
-----------
更新: pander
获得了一些帮助函数,可以更轻松地突出显示表格中的单元格:
> t <- mtcars[1:3, 1:5]
> emphasize.cols(1)
> emphasize.rows(1)
> pandoc.table(t)
----------------------------------------------------
mpg cyl disp hp drat
------------------- ------ ----- ------ ----- ------
**Mazda RX4** *21* *6* *160* *110* *3.9*
**Mazda RX4 Wag** *21* 6 160 110 3.9
**Datsun 710** *22.8* 4 108 93 3.85
----------------------------------------------------
或者直接使用pander
方法:
> emphasize.strong.cells(which(t > 20, arr.ind = TRUE))
> pander(t)
---------------------------------------------------------
mpg cyl disp hp drat
------------------- -------- ----- ------- ------- ------
**Mazda RX4** **21** 6 **160** **110** 3.9
**Mazda RX4 Wag** **21** 6 **160** **110** 3.9
**Datsun 710** **22.8** 4 **108** **93** 3.85
---------------------------------------------------------
请注意,这些新功能尚未在CRAN上发布,但您可以在上托管的最新版本中找到。
发布于 2013-03-14 17:08:26
这里是一个基于带有自定义css
的xtable
的解决方案。我认为这个解决方案是灵活的,因为一旦你开始工作,如果你知道一些css技巧,你就可以无限地定制你的html表格。
我们开始吧。该解决方案包含3个文件:
表格{最大宽度: 95%;边框: 1px实体#ccc;}{背景颜色:#000000;颜色:#ffffff;}表格tr:第n个子对象(奇数) td{背景颜色:#FF0000;}表格tr:第n个子对象(偶数) td{背景颜色:#00FFFFF;}
选项(rstudio.markdownToHTML= function(inputFile,outputFile) { require( markdown ) markdownToHTML(inputFile,outputFile,stylesheet='customstyle.css') })
{r} source('initmd.R')
{r,results='asis'} library(xtable) n <- data.frame(x = c(1,1,1,1,1), y = c(0,1,0,1,0)) print(xtable(n),type='html')
最后,使用knit HTML
按钮将markdwon转换为html,您应该会得到如下所示:
https://stackoverflow.com/questions/15403903
复制相似问题