我最近浏览了 R Task Views 很多,发现一些感兴趣的包没有包含在任何任务 View 中。是否有既定的方法来查找任务 View 中列出的包的补充?
我意识到通过 XML
和 ctv
文件(例如 http://cran.r-project.org/web/views/Econometrics.ctv )的处理,我可以找到 <packagelist>
节点中列出的所有包的联合,并且 available.packages()
可以列出所有可用的包以供下载。这是诀窍,还是我在使用 CRANberries 或 CRANtastic 之类的网站时遗漏了一些技巧?
更新 1(不要这样做 - 请参阅下面的答案):我忽略了 CRAN 为包列出了“在 View 中:”。因此,似乎在幕后保留了一些信息以将包与它们所在的 View 相匹配。人们可以轻松地(并且粗鲁地)抓取所有 CRAN 包页面并使用 grep 查找“ View 中:”。这是我最初的想法,直到我遇到 ctv
,它更优雅一些。
更新 2:我忽略了与 ctv 的链接。如果您使用任务 View ,则包文档很有趣。
最佳答案
没有隐藏的技巧,只需重新创建类似 CRANberries 的东西(首先调用 available.packages()
并与它存储在本地数据库中的状态数据进行比较)。
在您的情况下,您可能想要计算 available.packages()
为您提供的内容与您从 ctv
包中获得的关于任务 View 选择的内容之间的差异。
编辑 1 您的“更新 1”想法很粗糙。太粗糙了。 CRAN 的元信息来自,我认为,正确地解释了元信息:第一组是所有包,每个任务 View 的添加集,可能在“列出”和“推荐”之间拆分并汇总。
编辑 2 我想你只是使用 ctv
中的代码来解析它的文件,出来集。我们在 cran2deb
中使用它来定义用于包创建的较小测试集。给定该集合(和其他数据),他们可以生成网页。我想你可能把事情复杂化了。 R 使这成为可能,因为我也非常了解 ;-)
关于r - 如何列出任何 R 任务 View 中未包含的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7265133/