在 RStudio 外部的 R 会话中,输入help.start()
,点击“搜索引擎和关键字”并搜索,例如xtabs
结果列表中包含stats::xtabs
;单击该链接会为我打开一个网址http://127.0.0.1:18412/library/stats/html/xtabs.html http://127.0.0.1:18412/library/stats/html/xtabs.html。 url 由本地主机组成http://127.0.0.1
, 一个端口18412
,和一条路径/library/stats/html/xtabs.html
。事实上,这是本地主机上的 http 请求,这意味着 R 正在运行本地 http 服务器(由help.start()
,也在启动时由 RStudio 执行)。
该端口可用(在帮助服务器启动后):
> tools:::httpdPort()
[1] 18412
该路径可以重建为
paths = as.character(help('xtabs'))
返回的路径指示哪些(当前加载的)包引用xtabs
并且可以使用以下命令提取相关组件(库和术语)
pattern = paste0(R.home(), "(/library/[^/]+)/help(/.+)")
lib = sub(pattern, "\\1", paths)
term = sub(pattern, "\\2", paths)
因此 url 可以构造为
> url = paste0("http://127.0.0.1:", port, lib, "/html", term, ".html")
并打开,例如
browseURL(url)
这存在许多挑战,例如,当多个包定义别名时xtabs
(以便paths
并且所有后续步骤都有多个元素)。
就其价值而言,各个帮助页面是not默认情况下可直接使用 R 使用,而是由 Web 服务器动态创建。例如,请注意
> dir(R.home("library/stats/html"))
[1] "00Index.html" "R.css"
> browseURL(R.home("library/stats/html/00Index.html"))
显示索引页,但单击xtabs
链接会导致 404 文件未找到。安装 R 和/或软件包时可以生成静态页面R CMD INSTALL --html ...