print.xtable弄乱了html标签

时间:2015-02-16 03:39:44

标签: html r html-table xtable

我在使用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")正在将内部表格标签转换为&lt;&gt;

<!-- 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
&lt;table border=1&gt;
&lt;tr&gt; &lt;th&gt;  &lt;/th&gt; &lt;th&gt; x &lt;/th&gt; &lt;th&gt; error &lt;/th&gt;  &lt;/tr&gt;
  &lt;tr&gt; &lt;td align="right"&gt; 1 &lt;/td&gt; &lt;td&gt; element1 &lt;/td&gt; &lt;td&gt; thing1 &lt;/td&gt; &lt;/tr&gt;
  &lt;tr&gt; &lt;td align="right"&gt; 2 &lt;/td&gt; &lt;td&gt; element2 &lt;/td&gt; &lt;td&gt; thing2 &lt;/td&gt; &lt;/tr&gt;
  &lt;tr&gt; &lt;td align="right"&gt; 3 &lt;/td&gt; &lt;td&gt; element3 &lt;/td&gt; &lt;td&gt; thing3 &lt;/td&gt; &lt;/tr&gt;
   &lt;/table&gt; </td> </tr>
  <tr> <td align="right"> 2 </td> <td> b </td> <td> ok </td> </tr>
   </table>

因此我的问题是:有没有办法确保所有标签都被保留下来?

1 个答案:

答案 0 :(得分:4)

问题是默认sanitize.text.function正在更改html标记。您可以尝试将其重置为不会更改任何内容的函数(将其设置为NULL将调用默认值:

print.xtable(xtable(DF,digits=2), type="html",sanitize.text.function=function(x){x})