是否有将DESCRIPTION文件解析为列表对象的函数/库?

xytpbqjk  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(72)

动机

我想建立一个包排名算法的基础上各种措施的最优性。
我今天阅读了一些东西[tidyverse],指向以下命令:

元素

tools::package_dependencies(package="liteq", recursive=TRUE)[["liteq"]]

可以很容易地 Package 成一个函数(WORK IN PROGRESS):

help.packageInfo = function(package, key="dependencies", ...)
    {
    # number of authors
    # function to PARSE DESCRIPTION FILE
    
    tools::package_dependencies(package=package, recursive=TRUE)[[package]];
    }

示例[良好]

help.packageInfo("digest");

示例[不良]

help.packageInfo("tidyverse");

如何提取DESCRIPTION文件数据

Package: tools
Version: 4.2.1
Priority: base
Title: Tools for Package Development
Author: R Core Team
Maintainer: R Core Team <do-use-Contact-address@r-project.org>
Contact: R-help mailing list <r-help@r-project.org>
Description: Tools for package development, administration and documentation.
License: Part of R 4.2.1
Suggests: codetools, methods, xml2, curl, commonmark, knitr, xfun,
        mathjaxr
NeedsCompilation: yes
Built: R 4.2.1; x86_64-w64-mingw32; 2022-06-23 09:27:10 UTC; windows
ExperimentalWindowsRuntime: ucrt

描述文件可以告诉我很多东西(作者数量,建议数量,导入,需求),甚至对于我安装在系统上的NON-CRAN仓库也是如此。我想问的是,它们是你所看到的将DESCRIPTION文件解析成列表对象的库/函数吗?

yptwkmov

yptwkmov1#

评论中指出

pkg <- "stats"
packageDescription(pkg)

甚至更短。
如果您拥有的不是已安装的软件包,而只是一个DESCRIPTION文件,则使用下面所示的read.dcf。
假设软件包已安装,获取DESCRIPTION文件的路径,然后使用read.dcf给出一个单行矩阵,其列包含数据。

pkg <- "stats"
desc_path <- system.file("DESCRIPTION", package = pkg)
m <- read.dcf(desc_path)

它可以按原样使用,也可以根据您的需要转换为各种形式。

DF <- as.data.frame(m) # one row data.frame

stack(DF) # 2 column data.frame

as.list(DF) # named list

unlist(DF) # named character vector

相关问题