【译】cranly包介绍及使用说明

浏览: 1689

Package ‘cranly’

2018年3月28日 

标题  CRAN中的包指令和协作网络。

版本 0.1

简介 为CRAN包数据库提供核心可视化和概要。提供全面的方法来清理和组织信息。在CRAN包数据库中,用于构建包指令网络(决定,导入,建议,增强)和协作网络,以及计算总结和从结果网络中导入交互式可视化。

网络可视化R包‘visNetwork’<https://CRAN.R-project.org/package=visNetwork>。此包还提供将网络强制到'igraph' <https://cran.r-project.org/package=igraph>的功能以用于进一步的分析与建模。

URL https://github.com/ikosmidis/cranly

错误报告 https://github.com/ikosmidis/cranly/issues

需要版本 R (>= 3.4.0)

导入 visNetwork, colorspace, igraph, magrittr, stringr, ggplot2, countrycode

执照 GPL-3 

编码 TF-8 

LazyData  支持 

RoxygenNote版本 6.0.1

推荐 testthat, knitr, rmarkdown, covr 

VignetteBuilder knitr 

需要编译 否

作者 Ioannis Kosmidis [aut, cre] <https://orcid.org/0000-0003-1556-0302>

维护 Ioannis Kosmidis <ioannis.kosmidis@warwick.ac.uk> 

 CRAN

发布日期 2018-03-28 09:11:08 UTC



  • as.igraph.cranly_network
  • cranly_network强制到graph对象


    说明

    cranly_network强制到graph对象

    使用

    ## S3 method for class 'cranly_network'
    as.igraph(x, reverse = FALSE, ...)

    参数

    x                cranly_network 对象

    reverse     逻辑。边缘的方向是否应该反转?视情况而定。默认为TRUE

    ...              目前未使用

    详细

    cranly_network 对象与perspective = "package"的协定为:边缘的指向为:由一个包到另一个被其输入,建议,增强或依赖于其的另一个包。reverse将这一指向反转至正确计算的相关网络摘要(详见 summary.cranly_network)。reverse只有在当attr(x, "perspective")为"package"时相关并当attr为(x, "perspective")为"author"时忽略,在此情况下graph对象显author的无向网络

    举例

    ## Not run:


    data("cran20032018", package = "cranly")   
    ## Package directives network
    package_network <- build_network(object = cran20032018, perspective = "package")
    igraph::as.igraph(package_network) 


    ## Author collaboration network
    author_network <- build_network(object = cran20032018, perspective = "author")
    igraph::as.igraph(author_network)

    ## End(Not run)



  • build_network  
  • 对象的build_network 方法


    说明

    对象的build_network 方法

    使用

    build_network(object, ...)

    参数

    object         用于建立网络的对象

    ...                传递给方法的其他参数

    另请参阅

    build_network.cranly_network




  • build_network.cranly_db
  • 计算包指令和协作网络的边缘与节点


    说明

    计算包指令和协作网络的边缘与节点

    使用

    ## S3 method for class 'cranly_db'
    build_network(object = clean_CRAN_db(), trace = FALSE,
    perspective = "package", ...)

    参数

    object               cranly_db 对象

    trace                 逻辑。是否输出进程信息?默认为FALSE

    character          字符。建立一个"package"(默认)或"author"网络?

    ...                      目前未使用

    详细

    cranly_network 对象与perspective = "package"的协定为:边缘的指向为:由一个包到另一个被其输入,建议,增强或依赖于其的另一个包。author网络在所有cranly方法中被分析和可视化为无定向的。

    赋值

    拥有2个网络边缘和节点的data.frames

    举例

    ## Not run:
    data("cran20032018", package = "cranly") 
    ## Package directives network
    package_network <- build_network(object = cran20032018, perspective = "package") 
    head(package_network$edges)
    head(package_network$nodes) 
    attr(package_network, "timestamp") 
    class(package_network)

    ## Author collaboration network
    author_network <- build_network(object = cran20032018, perspective = "author") 
    head(author_network$edges)
    head(author_network$nodes) 
    attr(author_network, "timestamp") 
    class(author_network)

    ## End(Not run)



  • clean_CRAN_db
  • 输入tools::CRAN_package_db()

    清理并整理包和作者名称


    说明

    输入tools::CRAN_package_db()

    清理并整理包和作者名称

    使用

    clean_CRAN_db(packages_db = tools::CRAN_package_db(),
    clean_directives = clean_up_directives, clean_author = clean_up_author)

    参数

    packages_db                对CRAN_package_db (默认)的输出拥有固定结构的 data.frame

    clean_directives           将包描述中的各种指令的内容转换为包名称向量的函数

    默认为clean_up_directives

    clean_author               将author描述中的内容转换为authors包名称向量的函数

    默认为 clean_up_author

    详细

    clean_CRAN_db 使用 clean_up_directives 和 clean_up_authors 来在不同的指令下清理作者名与包名(如数据中的 Imports, Depends, Suggests, Enhances。CRAN_package_db生成架构)并返还整理完毕的数据到cranly_db类,用于进一步的分析。

    此函数能够分辨并终结文件描述中Author区域的错误,提取仅有author名称的清单。相关操作被编码于clean_up_author函数中。具体地说,一些对版权所有者的引用必须去除,因为他们影响了作者名单。目前版本的clean_up_author仍不能在使用正则表达式上尽善尽美但目前它在整理Author领域上表现良好。在未来版本中它将被进一步升级。

    自定义清理功能也可以由clean_指令和clean_author参数提供

    赋值

    一个和packaged_db拥有相同变量的data.frame(但使用小写名称),一个归属于并从class_db继承的时间戳。

    举例

    ## Not run:
    ## Before cleaning
    cran_db <- tools::CRAN_package_db() cran_db[cran_db$Package == "weights", "Author"]

    ## After clean up
    package_db <- clean_CRAN_db(cran_db) package_db[package_db$Package == "weights", "Author"]

    ## End(Not run)



  • clean_up_author  
  • 清除作者名称


    说明

    清除作者名称

    使用

    clean_up_author(variable)

    参数

    variable       一个字符串

    赋值

    一个字符串向量的列表

    举例

    clean_up_author(paste("The R Core team, Brian & with some assistance from Achim, Hadley;", "Kurt\n Portugal; Ireland; Italy; Greece; Spain"))



  • clean_up_directives 
  • 清理包的指令


    说明

    清理包的指令

    使用

    clean_up_directives(variable)

    参数

    variable       一个字符串

    赋值

    一个字符串向量的列表

    举例

    clean_up_directives("R (234)\n stats (>0.01),     base\n graphics")



  • cran20032018 
  • 从2018年3月20日的清理和处理CRAN包元数据。


    说明

    这是一个1000个R包的随机样本,来自调用于2018年3月20日的经过处理的CRAN_package_db()版本。具体地说,生成的数据框架被传递给clean_CRAN_db函数,并且只保留了以下变量:

    使用

    cran20032018

    形式

    一个来自cranly_db(继承data.frame)的对象,有1000行和13列。

    详细

      • package
      • version
      • date
      • url
      • depends
      • imports
      • suggests
      • enhances
      • license
      • author
      • maintainer
      • contact
      • md5sum

        作者的名字已经通过iconv函数转换为ASCII


      • cranly 
      • cranly:CRAN包数据库分析与可视化


        说明

        cranly:CRAN包数据库分析与可视化

        详细

        为CRAN包数据库提供核心可视化和概要。提供全面的方法来清理和组织信息。在CRAN包数据库中,用于构建包指令网络(决定,导入,建议,增强)和协作网络,以及计算总结和从结果网络中导入交互式可视化。

        网络可视化R包‘visNetwork’<https://CRAN.R-project.org/package=visNetwork>。此包还提供将网络强制到'igraph' <https://cran.r-project.org/package=igraph>的功能以用于进一步的分析与建模。

        感谢

        David Selby (http://selbydavid.com) 测试了cranly的先行版本并提供了很有帮助的评论和反馈。感谢他的帮助。


      • package_by
      • 通过与特定字符串匹配的作者或包来查找包和作者


        说明

        通过与特定字符串匹配的作者或包来查找包和作者

        使用

        package_by(x, author = NULL, exact = FALSE) 
        package_with(x, name = NULL, exact = FALSE) 
        author_with(x, name = NULL, exact = FALSE) 
        author_of(x, package = NULL, exact = FALSE)

        ## S3 method for class 'cranly_network' 
        package_by(x, author = NULL, exact = FALSE)

        ## S3 method for class 'cranly_network'
        author_of(x, package = NULL, exact = FALSE)

        ## S3 method for class 'cranly_network' 
        author_with(x, name = NULL, exact = FALSE)

        ## S3 method for class 'cranly_network'
        package_with(x, name = NULL, exact = FALSE)

        参数

        x                  cranly_network 对象

        author         与作者名称匹配的字符串向量

        exact           逻辑。是否应该完全匹配?默认为TRUE

        name          一个字符字符串的矢量,有匹配的名称

        package      一个字符字符串向量,有匹配的包名称

        举例

        ## Not run:
        data("cran20032018", package = "cranly") 
        ## Using a package directives network
        package_network <- build_network(cran20032018)
        ## Find all packages containing glm in their name 
        package_with(package_network, name = "glm")
        ## Find all authors of packages containing brglm in their name 
        author_of(package_network, package = "rglm", exact = FALSE)
        ## Find all packages with brglm in their name 
        package_with(package_network, name = "rglm", exact = FALSE) 
        ## Find all authors of the package brglm2 
        author_of(package_network, package = "brglm2", exact = TRUE) 
        ## Find all authors with Ioannis in their name 
        author_with(package_network, name = "Ioannis", exact = TRUE)

        ## Using an author collaboration network
        author_network <- build_network(cran20032018, perspective = "author") 
        ## Find all packages containing glm in their name 
        package_with(author_network, name = "glm")
        ## Find all authors of packages containing brglm in their name 
        author_of(author_network, package = "rglm", exact = FALSE)
        ## Find all packages with brglm in their name 
        package_with(author_network, name = "rglm", exact = FALSE) 
        ## Find all authors of the package brglm2 
        author_of(author_network, package = "brglm2", exact = TRUE) 
        ## Find all authors with Ioannis in their name 
        author_with(author_network, name = "Ioannis", exact = TRUE)

        ## End(Not run)


      • plot.cranly_network
      • 使用vis.js库实现cranly_network包或作者的交互式可视化。


        说明

        使用vis.js库实现cranly_network包或作者的交互式可视化

        使用

        ## S3 method for class 'cranly_network'
        plot(x, package = NULL, author = NULL,
        physics_threshold = 200, height = NULL, width = NULL, 
        directive = c("imports", "suggests", "enhances", "depends"),
        dragNodes = TRUE, dragView = TRUE, zoomView = TRUE, exact = TRUE, 
        legend = FALSE, title = FALSE, global = TRUE, ...)

        参数

        x                  cranly_network 对象

        package      一个带有包名称的字符字符串向量

        author         一个带有作者名称的字符字符串向量

        physics_threshold  整数。在关闭物理模拟的边缘之前,有多少节点?默认为200

        另请参阅visEdges

        Height        高度(可选,默认为自动大小)

        Width         (可选,默认为自动大小)

        directive    矢量。至少为"Imports", "Suggests", "Enhances", "Depends" 中之一

        dragNodes    逻辑。用户是否可以拖拽不固定的节点?默认为TRUE

        dragView       逻辑。用户是否可以拖拽视野?默认为TRUE

        zoomView     逻辑。用户是否可以缩放?默认为TRUE

        exact             逻辑。是否需要完全匹配?默认为TRUE

        legend          逻辑。是否要在可视化结果中增加legend?默认为FALSE

        title               逻辑。是否要在可视化结果中增加title?默认为FALSE

        global           逻辑。如果是TRUE (默认) 则网络概括统计在对象上计算

        反之,根据包和作者对对象的子集计算

        ...                目前未使用

        举例

        ## Not run:
        data("cran20032018", package = "cranly") 
        package_network <- build_network(cran20032018)
        ## The package directives network of all users with Ioannis in 
        ## their name from the CRAN database subset cran20032018 
        plot(package_network, author = "Ioannis")
        ## The package directives network of "Achim Zeileis" 
        plot(package_network, author = "Achim Zeileis")

        author_network <- build_network(cran20032018, perspective = "author") 
        plot(author_network, author = "Ioannis", title = TRUE)

        ## End(Not run)

      • plot.summary_cranly_network
      • 根据一系列的网络统计数据进行的前n个package与author的条状图


        说明

        根据一系列的网络统计数据进行的前n个package与author的条状图

        使用

        ## S3 method for class 'summary_cranly_network' 
        plot(x, top = 20, according_to = NULL,
        scale = FALSE, ...)

        参数

        x                       summary_cranly_network 对象

        top                   整数。如何绘制软件包或作者?默认为20

        according_to   根据top-top列表产生的统计数据。可用统计详见summary.cranly_network

        scale                逻辑。在绘制之前,是否应该将统计数据缩放到0和1之间?默认为FALSE

        ...                     目前未使用

        举例

        ## Not run:
        data("cran20032018", package = "cranly") 
        ## package network
        package_network <- build_network(cran20032018)
        package_summaries <- summary(package_network) 
        plot(package_summaries, according_to = "n_imported_by", top = 30) 
        plot(package_summaries, according_to = "n_depended_by", top = 30) 
        plot(package_summaries, according_to = "page_rank", top = 30)

        ## author network
        author_network <- build_network(cran20032018, perspective = "author") 
        author_summaries <- summary(author_network)
        plot(author_summaries, according_to = "n_collaborators", top = 30) 
        plot(author_summaries, according_to = "n_packages", top = 30) 
        plot(author_summaries, according_to = "page_rank", top = 30)

        ## End(Not run)

      • subset.cranly_network
      • 根据author,package和/或directive建立子集


        说明

        根据author,package和/或directive建立子集

        使用

        ## S3 method for class 'cranly_network' 
        subset(x, package = NULL, author = NULL,
        directive = c("imports", "suggests", "enhances", "depends"), exact = TRUE, only = FALSE, ...)

        参数

        x                  cranly_network 对象

        package     一个带有包名称的字符字符串向量

        author       一个带有作者名称的字符字符串向量

        directive    矢量。至少为"Imports", "Suggests", "Enhances", "Depends" 中之一

        exact         逻辑。是否需要完全匹配?默认为TRUE

        only          逻辑。如果为TRUE则子集仅包含在以package命名的package和/或authors命名的author之间;如果为FALSE(默认)                    则包含所有其他和包和/或作者关联的包和/或作者。

        ...              目前未使用


      • summary.cranly_network
      • 计算一系列的包指令和协作网络统计信息。


        说明

        计算一系列的包指令和协作网络统计信息。

        使用

        ## S3 method for class 'cranly_network' 
        summary(object, advanced = TRUE, ...)

        参数

        x                 cranly_network 对象

        advanced   逻辑。如果为FALSE(默认)则仅运行基本网络统计;如果为TRUE则包含高级统计(详见“详细”)

        ...                目前未使用

        详细

        如果attr(object,"perspective")为"package"则结果的data.frame将必须为下列变量之一:

        • package. 包名称
        • n_authors (basic). 包的作者数量
        • n_imports (basic). 包中输入的package的数量
        • n_imported_by (basic). package被其他包输入的次数
        • n_suggests (basic). 包建议的packge数
        • n_suggested_by (basic). package被其他包建议的次数
        • n_depends (basic). 包依靠的package的数量
        • n_depended_by (basic). 依靠于这个package的包的数量
        • n_enhances (basic). package提升的包的数量
        • n_enhanced_by (basic). 提升此包的package数量
        • betweenness (advanced). 包网络中包的中间性,由betweenness运算
        • closeness (advanced). 包网络中包的密切关系中心,由closeness运算
        • page_rank (advanced). 包网络中包的Google PageRank; 由page_rank 运算
        • degree (advanced). 包网络中包的维度; 由degree运算
        • eigen_centrality (advanced). 包网络中包的特征向量中心得分; 由eigen_centrality运算

        如果attr(object,"perspective")为"author"则结果的data.frame将必须为下列变量之一:

        • author. 作者名称
        • n_packages (basic).  package authors中出现author的package数量
        • n_collaborators (basic). CRAN中author拥有的所有co-authors的数量
        • betweenness (advanced).作者网络中作者的中间性,由betweenness运算
        • closeness (advanced). 作者网络中作者的密切关系中心,由closeness运算
        • page_rank (advanced). 作者网络中作者的Google PageRank; 由page_rank 运算
        • degree (advanced). 作者网络中作者的维度; 由degree运算。等同于 n_collaborators
        • eigen_centrality (advanced). 作者网络中作者的特征向量中心得分; 由eigen_centrality运算

        赋值

        作者协作网络或包指示网络的各种统计的data.frame,具体取决于attr(object,"perspective")是“author”还是“package”。统计输出的内容详见“详细

        推荐 2
        本文由 sw_Yang 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
        转载、引用前需联系作者,并署名作者且注明文章出处。
        本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

        0 个评论

        要回复文章请先登录注册