print.xtable 打乱 html 标签

print.xtable messing up html tags

我在使用 print.xtable 将 html table 插入另一个 table 时遇到困难。

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"))

这似乎工作正常:(内部 table 的 html 标签类似于外部 table 的 html 标签)

xtable(DF,digits=2)

print.xtable(xtable(DF,digits=2), type="html") 正在将内部 table 标签转换为 &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>

因此我的问题是:有没有办法确保所有标签都完好无损?

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

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