当用?"function"
之类的东西在RStudio中打开帮助文档时,我们如何(轻松地)获得这些帮助文档的web版本?
目前,我正在寻找一个独特的句子,然后在谷歌上用引号搜索它。例如,为了找到?"function"
的网络版,我用谷歌搜索了"These functions provide the base mechanisms for defining new functions in the R language."
--但一定有更有效的工具吗?
发布于 2020-01-07 10:19:30
如果你想要一个从几个包中收集帮助文件并以某种方式组织它的网页,我认为你正在寻找rdocumentation(dot)org。你只需要在搜索栏中输入你想要的。
通常,当你安装软件包时,文档都存储在你的计算机中,这就是为什么没有包含所有这些文档的网页的原因。它们在本地存放。
我不认为互联网上有任何其他地方可以做到这一点。
发布于 2020-01-07 14:01:01
在RStudio之外的R会话中,输入help.start()
,点击“搜索引擎和关键字”,然后在包含stats::xtabs
的列表中搜索xtabs
结果;对我来说,点击这个链接会打开一个url 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
和所有后续步骤都有多个元素)。
无论如何,单独的帮助页面在默认情况下不是直接通过R提供的,而是由web服务器动态创建的。例如,请注意
> dir(R.home("library/stats/html"))
[1] "00Index.html" "R.css"
> browseURL(R.home("library/stats/html/00Index.html"))
显示索引页,但单击xtabs
链接会导致找不到404文件。使用R CMD INSTALL --html ...
安装R和/或软件包时,可以生成静态页面
https://stackoverflow.com/questions/59621350
复制相似问题