我想改进使用包html
在R中生成的xtable
表的外观:
library(xtable)
html.table = xtable(<mydataframe>)
digits(html.table) = 2
我使用以下方式打印表格:
html.tab = print(html.table, type = "html", floating = FALSE)
cat(html.tab, file = <html link>)
我希望能够证明表格中的文字,修改标题栏的颜色,更改字体,......
我有什么办法可以在R中实现这个目标吗?
谢谢!
答案 0 :(得分:9)
使用xtable,您还可以使用<TABLE>
参数在html.table.attributes
标记中提供类或ID(或内联css)。
一个例子:
print(xtable(head(iris, 10)), type = "html", include.rownames = F,
html.table.attributes="class='table-bordered'")
返回:
<!-- html table generated in R 3.0.1 by xtable 1.7-3 package -->
<!-- Fri Jul 11 12:18:15 2014 -->
<TABLE class='table table-bordered'>
<TR> <TH> Sepal.Length </TH> <TH> Sepal.Width </TH> <TH> Petal.Length </TH> <TH> Petal.Width </TH> <TH> Species </TH> </TR>
<TR> <TD align="right"> 5.10 </TD> <TD align="right"> 3.50 </TD> <TD align="right"> 1.40 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 4.90 </TD> <TD align="right"> 3.00 </TD> <TD align="right"> 1.40 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 4.70 </TD> <TD align="right"> 3.20 </TD> <TD align="right"> 1.30 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 4.60 </TD> <TD align="right"> 3.10 </TD> <TD align="right"> 1.50 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 5.00 </TD> <TD align="right"> 3.60 </TD> <TD align="right"> 1.40 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 5.40 </TD> <TD align="right"> 3.90 </TD> <TD align="right"> 1.70 </TD> <TD align="right"> 0.40 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 4.60 </TD> <TD align="right"> 3.40 </TD> <TD align="right"> 1.40 </TD> <TD align="right"> 0.30 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 5.00 </TD> <TD align="right"> 3.40 </TD> <TD align="right"> 1.50 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 4.40 </TD> <TD align="right"> 2.90 </TD> <TD align="right"> 1.40 </TD> <TD align="right"> 0.20 </TD> <TD> setosa </TD> </TR>
<TR> <TD align="right"> 4.90 </TD> <TD align="right"> 3.10 </TD> <TD align="right"> 1.50 </TD> <TD align="right"> 0.10 </TD> <TD> setosa </TD> </TR>
</TABLE>
此类或id可以在ccs文件中使用,如果您创建多个表,这可能很有用 对于html页面
此外,您可以使用print.results=FALSE
参数来捕获字符向量
并使用来自stringr包的函数,例如str_replace()
,str_replace_all()
将类,ID或内联css添加到表格中的其他位置,例如<TD>
代码
答案 1 :(得分:2)
这个想法是:
print.xtable
所以这里创建“res.html”文件的代码:
## a dummy data.frame used as an example
library(xtable)
n <- data.frame(x = c(1,1,1,1,1), y = c(0,1,0,1,0))
## the html header
## here I am using a link to mystyle.css
html.head <- paste("<head>" ,
'<link rel="stylesheet" type="text/css" href="mystyle.css"/>',
"</head>",sep='\n')
## the html body
html.table <- paste(print(xtable(n),type='html','res.html'),
collapse = "\n")
html.body <- paste("<body>", html.table,"</body>")
## the html file
write(paste(html.head,html.body,sep='\n'),"res.html")
syle表文件(mystyle.css)可以包含如下内容:
table {
max-width: 95%;
border: 1px solid #ccc;
}
th {
background-color: #000000; // background for table header
color: #ffffff;
}
td
{
text-align:right; // justify column
background-color: #FF0000;
}