这篇“r语言的包有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“r语言的包有哪些”文章吧。
一. 概述
对于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)
以上就是关于“r语言的包有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。