r - CRAN(或其任何亲属)是否有 API?

标签 r cran

我有兴趣检索有关 R 包的机器可读元信息。

例如,当我去 CRAN 时,我可以在下载之前看到关于包的简短描述:https://cran.r-project.org/web/packages/MASS/

我找不到任何方法从 CRAN 服务器检索与 HTML 不同的输出。我想避免解析 HTML,而是以某种方式以更方便的格式(例如 JSON)检索有关包的元信息。

我看到每个 R 包(至少据我所知)在其源代码包(文件名为 DESCRIPTION)内都有类似 yaml(?)的描述文本。但是,到目前为止,我只能在 tar 存档中找到这种描述,这意味着我必须先下载该包,然后才能访问它的描述。

这里是 MASS 包中的 DESCRIPTION 示例:

Package: MASS
Priority: recommended
Version: 7.3-55
Date: 2022-01-12
Revision: $Rev: 3559 $
Depends: R (>= 3.3.0), grDevices, graphics, stats, utils
Imports: methods
Suggests: lattice, nlme, nnet, survival
Authors@R: c(person("Brian", "Ripley", role = c("aut", "cre", "cph"),
                    email = "ripley@stats.ox.ac.uk"),
         person("Bill", "Venables", role = "ctb"),
         person(c("Douglas", "M."), "Bates", role = "ctb"),
         person("Kurt", "Hornik", role = "trl",
                     comment = "partial port ca 1998"),
         person("Albrecht", "Gebhardt", role = "trl",
                     comment = "partial port ca 1998"),
         person("David", "Firth", role = "ctb"))
Description: Functions and datasets to support Venables and Ripley,
  "Modern Applied Statistics with S" (4th edition, 2002).
Title: Support Functions and Datasets for Venables and Ripley's MASS
LazyData: yes
ByteCompile: yes
License: GPL-2 | GPL-3
URL: http://www.stats.ox.ac.uk/pub/MASS4/
Contact: <MASS@stats.ox.ac.uk>
NeedsCompilation: yes
Packaged: 2022-01-13 05:06:37 UTC; ripley
Author: Brian Ripley [aut, cre, cph],
  Bill Venables [ctb],
  Douglas M. Bates [ctb],
  Kurt Hornik [trl] (partial port ca 1998),
  Albrecht Gebhardt [trl] (partial port ca 1998),
  David Firth [ctb]
Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
Repository: CRAN
Date/Publication: 2022-01-13 08:05:04 UTC

有什么建议可以直接以机器可读且方便的形式获取吗?

我试图查找它,但搜索引擎到目前为止没有给我带来任何有用的结果。

编辑/澄清:我正在寻找一种不依赖于 R 的解决方案,而是一种不依赖于元数据检索所用框架/语言的 Web API。

最佳答案

tools::CRAN_package_db() 是否有您想要的所有信息? (有关讨论,请参阅 here)

> dd <- tools::CRAN_package_db()
> names(dd)
 [1] "Package"                 "Version"                
 [3] "Priority"                "Depends"                
 [5] "Imports"                 "LinkingTo"              
 [7] "Suggests"                "Enhances"               
 [9] "License"                 "License_is_FOSS"        
[11] "License_restricts_use"   "OS_type"                
[13] "Archs"                   "MD5sum"                 
[15] "NeedsCompilation"        "Additional_repositories"
[17] "Author"                  "Authors@R"              
[19] "Biarch"                  "BugReports"             
[21] "BuildKeepEmpty"          "BuildManual"            
[23] "BuildResaveData"         "BuildVignettes"         
[25] "Built"                   "ByteCompile"            
[27] "Classification/ACM"      "Classification/ACM-2012"
[29] "Classification/JEL"      "Classification/MSC"     
[31] "Classification/MSC-2010" "Collate"                
[33] "Collate.unix"            "Collate.windows"        
[35] "Contact"                 "Copyright"              
[37] "Date"                    "Description"            
[39] "Encoding"                "KeepSource"             
[41] "Language"                "LazyData"               
[43] "LazyDataCompression"     "LazyLoad"               
[45] "MailingList"             "Maintainer"             
[47] "Note"                    "Packaged"               
[49] "RdMacros"                "StagedInstall"          
[51] "SysDataCompression"      "SystemRequirements"     
[53] "Title"                   "Type"                   
[55] "URL"                     "UseLTO"                 
[57] "VignetteBuilder"         "ZipData"                
[59] "Published"               "Path"                   
[61] "X-CRAN-Comment"          "Reverse depends"        
[63] "Reverse imports"         "Reverse linking to"     
[65] "Reverse suggests"        "Reverse enhances"       

关于r - CRAN(或其任何亲属)是否有 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71573982/

相关文章:

r - 如何为r中ROC曲线下面积的加权平均值创建置信区间?

R `parallel` 包在 CRAN 上不存在?

回收旧的 R 包

r - 从 ddply 函数中获取分组术语?

R 循环花费的时间太长,我该如何以另一种方式解决这个问题?

r - 通过函数更新数据框不起作用

r - 如何将长 LaTeX 表格拆分成相邻的列?

r - 关闭未使用的 RODBC 句柄

r - 从本地仓库安装具有依赖项的包时出错

r - install.packages() 忽略将警告转换为错误的选项?