R htmltools可浏览HTML没有显式print()就无法查看

pinkon5k  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(119)

我可以用htmltools包函数在R中创建用属性 Package 的HTML代码。这允许html从控制台(浏览器窗口自动启动)以及在R Markdown和夸托文档中呈现。但是如果没有显式的print(),我无法使其工作。如何使其与隐式的print一起工作?这里是一个最小的工作示例。

require(htmltools)

x <- readLines(textConnection('
<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
</table>'))

print.ctest <- function(x) browsable(HTML(x))

class(x) <- 'ctest'

print(x)   # opens browser
x          # does nothing
kpbwa7wx

kpbwa7wx1#

如果一个对象被它的名字调用,它会使用相应类的默认打印方法。将x转换为HTML,然后调用x,它会隐式调用打印并启动正确的设备(浏览器)

require(htmltools)

x <- readLines(textConnection('
<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
</table>'))


class(x) # [1] "character"
x # prints character in console

x_1 <- browsable(HTML(x))
class(x_1) # [1] "html"      "character"
x_1 # shows HTML in browser without explicit print

相关问题