我在使用print.xtable
在另一个表中插入html表时遇到了困难。
DF=data.frame(A=c("a","b"),B=c("This is a text
<table border=1>
<tr> <th> </th> <th> x </th> <th> error </th> </tr>
<tr> <td align=\"right\"> 1 </td> <td> element1 </td> <td> thing1 </td> </tr>
<tr> <td align=\"right\"> 2 </td> <td> element2 </td> <td> thing2 </td> </tr>
<tr> <td align=\"right\"> 3 </td> <td> element3 </td> <td> thing3 </td> </tr>
</table>","ok"))
这似乎工作正常:(内部表的html标签类似于外部表的html标签)
xtable(DF,digits=2)
但是print.xtable(xtable(DF,digits=2), type="html")
正在将内部表格标签转换为<
和>
:
<!-- html table generated in R 3.1.2 by xtable 1.7-4 package -->
<!-- Mon Feb 16 05:55:32 2015 -->
<table border=1>
<tr> <th> </th> <th> A </th> <th> B </th> </tr>
<tr> <td align="right"> 1 </td> <td> a </td> <td> This is a text
<table border=1>
<tr> <th> </th> <th> x </th> <th> error </th> </tr>
<tr> <td align="right"> 1 </td> <td> element1 </td> <td> thing1 </td> </tr>
<tr> <td align="right"> 2 </td> <td> element2 </td> <td> thing2 </td> </tr>
<tr> <td align="right"> 3 </td> <td> element3 </td> <td> thing3 </td> </tr>
</table> </td> </tr>
<tr> <td align="right"> 2 </td> <td> b </td> <td> ok </td> </tr>
</table>
因此我的问题是:有没有办法确保所有标签都被保留下来?
答案 0 :(得分:4)
问题是默认sanitize.text.function
正在更改html标记。您可以尝试将其重置为不会更改任何内容的函数(将其设置为NULL
将调用默认值:
print.xtable(xtable(DF,digits=2), type="html",sanitize.text.function=function(x){x})