作者:Joseph Rickert

翻译:黄小伟,先后从事游戏、社交及金融数据研究及应用,目前就职杭州有赞

一. 概述

对于R用户而言,想找到所需要的R包都是一件极为麻烦的事情!目前,CRAN已经收录超过13,000个R包,而且已每月200左右的速度增加。但是R包的命名一般都是根据作者喜好,缺少针对性信息,使得通过名称查询变得低效。

针对该问题,R包的开发者也提供了一些有用的工具,以下针对该方法做简单介绍。

cranly:你的R包管理工具

二. 使用说明

library(tidyverse)

## ── Attaching packages ─── tidyverse 1.2.1 ──

## ✔ ggplot2 2.2.1     ✔ purrr   0.2.4

## ✔ tibble  1.4.2     ✔ dplyr   0.7.5

## ✔ tidyr   0.8.1     ✔ stringr 1.3.1

## ✔ readr   1.1.1     ✔ forcats 0.3.0

## ── Conflicts ──── tidyverse_conflicts() ──

## ✖ dplyr::filter() masks stats::filter()

## ✖ dplyr::lag()    masks stats::lag()

library(packagefinder)

library(dlstats)

library(cranly)

packagefinder在7月份收录于CRAN,主要功能是帮助R使用者找到能够解决燃眉之急的R包。packagefinder::findPackage() 支持通过关键词搜素CRAN上所有R包的元数据。

假如要进行Permutation Tests(置换检验),可以输入你能想到的、最直接的搜索内容,比如coin(Thomas Leeper提到过的一个置换检验的例子中使用了coin包),这也是一个很清晰的暗示,你期望在所有结果中找到带有coin关键词的包。

不幸的是,这个软件包非常新,而且没有详细记录。目前尚不清楚如何计算SCORE,DOWNL_TOTAL充满了NAs。 但该功能似乎确实找到了包。 请注意,findPackage()允许用户设置权重参数,该参数会影响搜索“如何命中包的标题,简短描述和长描述”。

下一行代码只选择我们将使用的列。

pt_pkg <- select(pt_pkg, NAME, DESC_SHORT)

现在我们有一个感兴趣的包列表,最好能够指出所选包的质量和实用性。 有用性的自然衡量标准是下载包的次数。 为此,我们转向dlstats包中的cran_stats()函数。 此函数将包名称向量作为输入,查询RStudio下载日志,并返回一个数据框,列出每个包的月份下载次数。

pt_downloads <- cran_stats(pt_pkg$NAME)

dim(pt_downloads)

## [1] 2784    4

head(pt_downloads)

##           start        end downloads  package

## 4485 2018-05-01 2018-05-31        52 permutes

## 4544 2018-06-01 2018-06-30        89 permutes

## 4603 2018-07-01 2018-07-31        92 permutes

## 4662 2018-08-01 2018-08-31        74 permutes

## 4721 2018-09-01 2018-09-30       227 permutes

## 4780 2018-10-01 2018-10-22       142 permutes

只需进行一些整理就可以生成一个数据框,其中列出了每个包在其生命周期内的总下载量。

top_downloads <- pt_downloads %>% group_by(package) %>%

summarize(downloads = sum(downloads)) %>%

arrange(desc(downloads))

head(top_downloads,10)

## # A tibble: 10 x 2 ##    package        downloads

##    <fct>              <int>

##  1 coin             1103426

##  2 exactRankTests    137674

##  3 RVAideMemoire     108837

##  4 perm               97071

##  5 logcondens         83033

##  6 HardyWeinberg      55735

##  7 biotools           47694

##  8 smacof             45257

##  9 SNPassoc           38920

## 10 broman             30956

正如预期的那样,coin已经排到了榜单的首位。 随着时间的推移绘制下载量表明该软件包在过去五年中越来越受欢迎,看起来人们在过去一年左右的时间里进行了大量的置换检验。

top_pkgs <- pt_downloads %>% filter(package %in% top_downloads$package[1:3])

ggplot(top_pkgs, aes(end, downloads, group=package, color=package)) +  geom_line() + geom_point(aes(shape=package))

同时,衡量R包质量和可靠性的另一种方法是查看有多少其他软件包依赖它。 这些包将在包的CRAN页面上列为“反向依赖”和“反向导入”,通过链接(https://cran.r-project.org/package=coin),我们看到coin页面上的这些字段中列出了24个包。

同样地,了解作者的背景、编写其他R包的经验、可能与之合作的着名R开发人员等信息,也有助于评估是否给出新发现的包是值得一试的。 上面的相同链接也显示了包的作者。 检查R项目的贡献者页面,我们看到两位作者是R Core的成员,背景和合作者不可能更好。

在大多数情况下,背景调查并不那么容易。 但是,借助函数cranly::build_network(),可以轻松跟踪作者的协作网络。 在这里,我们看到Torston拥有广泛的合作者网络。

p_db <- tools::CRAN_package_db()

clean_p_db <- clean_CRAN_db(p_db)

author_net <- build_network(object = clean_p_db, perspective = "author")

plot(author_net, author = "Torsten Hothorn", exact = FALSE)

cranly collaboration network

CRAN database version

Mon, 22 Oct 2018, 11:52

Author names with

"Torsten Hothorn"

Package names with

"Inf"

知道最多产的CRAN包作者是谁也是有帮助的。

author_summary <- summary(author_net)

## Warning in closeness(cranly_graph, normalized = FALSE): At centrality.c:

## 2784 :closeness centrality is not well-defined for disconnected graphs

plot(author_summary)

以前的文章更深入地探讨了cranly包和tools:: CRAN_package_db(),但还有更多要探索的内容。

CRAN任务视图(https://cran.r-project.org/web/views/)也是很有用的,这些是由专家指导的包装清单,并组织到功能区域。只要稍加搜索,你就会发现coin出现在多个任务视图中。

如何搜索你想要的R包?相关推荐

  1. R语言 image.binarization: 包_想提高文章的引用率?写个R包吧!- 工具准备篇

    前言 R语言程序包是R语言的灵魂,是R语言的核心,每一个R语言用户都会使用到R包.2006年3月15日,第一个R包(coxrobust)加入CRAN,截止2020年5月17日,已经有超过15000个R ...

  2. pkgsearch搜索和查询CRAN R包_2021-01-26

    # pkgsearch包功能测试_20210126 # ## 1.设置当前目录 setwd("pkgsearch/") ## 2.安装和导入R包 # install.package ...

  3. R包animalcules-一键式交互探索微生物组数据

    写在前面 这个包最优雅的地方在于交互式,所以学习的主要目的也就是交互式的实践.交互 图可以很好的探索数据,但一般不支持输出矢量图,不方便下游编辑和修改和用于发表.如果你找到了导出矢量图方法,请留言. ...

  4. R包reshape2,轻松实现长、宽数据表格转换

    本文翻译自外文博客,原文链接:https://seananderson.ca/2013/10/19/reshape/ 一.reshape2 简介 reshape2是由Hadley Wickham编写的 ...

  5. 包r语言_R语言入门之寻找你的R包

    关于寻找目标R包,一般可以在官网利用关键词搜索即可获得相关信息,不过米老鼠在这里想给大家介绍一个特别的R包,它可以帮助你寻找你想要的理想R包. 不过,在正式讲解,我想和大家提醒一下安装R包的注意事项: ...

  6. r roc函数_画ROC曲线的R包总结

    原标题:画ROC曲线的R包总结 作者: Joseph Rickert 原文链接: https://rviews.rstudio.com/2019/03/01/some-r-packages-for-r ...

  7. 把函数包起来就是一个R包 - 完整开发指南

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...

  8. R语言的版本更新以及迁移R包

    R语言的版本更新以及迁移R包 R版本的更新可以直接利用代码实习,这一操作并不困难,只不过在更新完之后需要将R包进行迁移 首先介绍一下如何更新R的版本 版本更新 install.packages(&qu ...

  9. 8个你不使用的数据科学R包(但绝对应该使用)

    Introduction 我是R的忠实粉丝 - 这不是什么秘密. 自从我在大学学习统计数据以来,我一直依赖它. 实际上,R仍然是机器学习项目的首选语言. R有三件事主要吸引我: 易于理解和使用的语法 ...

  10. 使用R包networkD3绘制炫酷的动态关系网络

    引言 在数据可视化领域,关系网络数据的可视化一直是一个受到广泛关注的话题. 我们经常会看到这样的复杂网络关系图. 也会经常看到一些影视作品的人物关系图,例如: 我们可以从图中清晰地了解到不同人物之间的 ...

最新文章

  1. NBT-新年4篇35分文章聚焦宏基因组研究
  2. FPGA之道(73)设计方法学与FPGA程序设计的境界
  3. SASS的一些使用体会(安装-配置-开启firefox的调试)
  4. spaCy教程(翻译自官网)
  5. 实现库函数strcpy
  6. Docker实践4: 基于nginx对后端的weblogic负载均衡
  7. git修改文件名大小写的方法。
  8. php 数组改成索引数组_PHP:用现有的唯一值替换数组索引键
  9. 高精度双目立体视觉测量
  10. 结合索引优化SQL语句提高数据库查询效率
  11. ArcPy常用类介绍
  12. MP、OMP与施密特正交化(转载)
  13. Flash上传文件(结合asp.net)
  14. 怎么把m2ts改成mp4
  15. mac 命令行安装软件
  16. 中小网站运营推广思路
  17. 第一方数据,第二方数据,第三方数据,都是什么意思?
  18. 【强化学习论文合集】二十九.2021国际机器学习大会论文(ICML2021)
  19. Android studio下载及安装方法
  20. Python如何删除多余的空格与空行(有代码)

热门文章

  1. GitHub上最励志的计算机自学教程,绝对牛B
  2. 太疯狂了!刚刚,马斯克脑机接口试验成功!这次是活猪下次是人脑!
  3. CodeReview 常见代码问题( 下 )
  4. 职场“35岁危机”:这是我看过的最棒建议
  5. 重磅推荐:2017 年最流行的 15 个数据科学 Python 库
  6. 当你的服务器被黑了,一定要看是不是犯了这 5 点错误
  7. 好开心,明天就上班了
  8. gulp怎么运行html文件,如果gulp-watch监视html文件,它会运行所有任务
  9. 服务端Latex解析成图片或者HTML或者SVG方案
  10. 部署java项目到阿里云服务器(centos7版本)