愈来愈多的R包正在由世界上不一样的人所建立,其中一部分缘由是devtools
包使得开发R包1变得更加简单。devtools
包不只让开发R包变得简单,并且用于分发R包。git
当开发者发布一个R包的时候,CRAN2通常是最经常使用的。使用install.packages()
函数能够安装发布在CRAN上的R包。例如,以下方法能够安装dplyr
包:github
install.packages('dplyr')
devtools
包的install_github()
函数用于从Github上安装R包。web
library(devtools) install_github('hadlley/dplyr')
所以,开发者能够分发正在Github上开发的R包。此外,有些开发者并无将本身开发的R包提至CRAN的意向。例如,Twitter,Inc在Github上提供的AnomalyDetection
包。这时咱们能够经过devtools
包轻松的安装该R包:浏览器
library(devtools) install_github("twitter/AnomalyDetection")
install.packages()
和install_github()
函数所需的参数是不一样的。install.packages()
只需包名便可,而install_github()
须要提供Github的仓库名。这意味着当你想从Github上安装一个R包的时候你必须准确的记得它的仓库名称。ide
麻烦的是,咱们每每很难记住Github的用户名。开发者在给R包命名的时候通常会考虑包的名称,以便用户方便记忆。然而,他们在给本身取一个Github用户名的时候可能就没那么当心了。例如,ggfortify
是Github上的一个很是好的包。但它是由谁开发的呢?用户名是什么呢?答案是sinhrks4。咱们彷佛很难记住它。函数
githubinstall
包提供了一种相似于install.packages()
的方式,只需包名便可安装R包。ui
#install.packages('githubinstall') #已发布至CRAN library(githubinstall) githubinstall('AnomalyDetection')
Suggetion: - twitter/AnomalyDetection Do you install the package? 1: Yes (Install) 2: No (Cancel)
githubinstall()
会从Github的仓库中搜索相应的R包,并询问你是否安装。.net
此外,若是你只是模糊的记得包名也能够安装成功,githubinstall
包经过模糊的字符串会自动纠正包名。code
githubinstall("AnomaryDetection") githubinstall("AnomalyDetect") githubinstall("anomaly-detection")
从CRAN上安装githubinstall
包orm
install.packages('githubinstall')
githubinstall
包的源代码在Github上可见https://github.com/hoxo-m/githubinstall
githubinstall
包提供了若干有用的函数:
这些函数都有相同的前缀gh。githubinstall()
是gh_install_packages()
的别名。
在演示这些函数的用法以前,咱们先加载下githubinstall
包
library(githubinstall)
给出包名便可,若是只是模糊的记得包名也不要紧。
githubinstall("AnomalyDetection")
Suggestion: - twitter/AnomalyDetection Do you install the package? 1: Yes (Install) 2: No (Cancel) Selection:
输入"1",按回车便可开始安装R包。建议安装的R包是经过Github上的R包列表给出的。该列表由Gepuro Task Views提供。
若是有多个候选项,输入相应的数字便可。
githubinstall("cats")
Select one repository or, hit 0 to cancel. 1: amurali2/cats cats 2: danielwilhelm/cats No description or website provided. 3: hilaryparker/cats An R package for cat-related functions #rcatladies 4: lolibear/cats No description or website provided. 5: rafalszota/cats No description or website provided. 6: tahir275/cats ff Selection:
githubinstall()
会提示你安装建议的R包,但咱们可能只想知道都有哪些建议。
gh_suggest()
以向量的形式返回建议的仓库名。
gh_suggest("AnomalyDetection")
## [1] "twitter/AnomalyDetection"
gh_suggest("cats")
## [1] "amurali2/cats" "danielwilhelm/cats" "davidluizrusso/cats" ## [4] "hilaryparker/cats" "lolibear/cats" "rafalszota/cats" ## [7] "tahir275/cats"
此外,若是你只是模糊的记得Github用户名的时候,gh-suggest_username()
函数很是有用。
gh_suggest_username('hadly')
## [1] "hadley"
gh_suggest_username("yuhui")
## [1] "yihui"
gh_list_packages()
函数以数据框的形式返回Github上R包的仓库名列表。例如,你想知道谢大大(谢益辉,统计之都创始人)都开发了哪些R包,运行以下:
yihuiverse <- gh_list_packages(username = "yihui") head(yihuiverse) ## username package_name title ## 1 yihui MSG Modern Statistical Graphics (my Chinese book) ## 2 yihui Rd2roxygen Convert Rd to roxygen documentation ## 3 yihui animation A gallery of animations in statistics and utilities to create animations ## 4 yihui crandalf Check all reverse dependencies of your R package on Travis CI ## 5 yihui formatR Format R Code Automatically ## 6 yihui fun Use R for Fun
经过返回的结果,咱们能够安装谢大大开发的全部R包。
repos <- with(yihuiyverse, paste(username, package_name, sep="/")) githubinstall(repos)
gh_search_packages()
函数返回Github上全部标题包含给定关键词的R包。例如,搜索全部包含lasso关键词的R包,运行以下:
gh_search_packages('lasso') ## username package_name title ## 1 ChingChuan-Chen milr multiple-instance logistic regressi.. ## 2 YaohuiZeng biglasso Big Lasso: Extending Lasso Model Fi.. ## 3 huayingfang CCLasso CCLasso: Correlation Inference for .. ## 4 mlampros FeatureSelection Feature Selection in R using glmnet.. ## 5 pnnl glmnetLRC Lasso and Elastic-Net Logistic Regr.. ## 6 statsmaths genlasso Path algorithm for generalized lass.. ## 7 vincent-dk logitsgl Fit Logistic Regression with Multi-.. ## 8 vincent-dk lsgl Linear Multiple Output Using Sparse.. ## 9 vincent-dk msgl High Dimensional Multiclass Classif.. ## 10 vstanislas GGEE R Package for the Group Lasso Gene-.. ## 11 zdk123 BatchStARS R package for Stability Approach to.. ## 12 zdk123 pulsar R package for Stability Approach to..
gh_show_source()
会在Github上查找指定R函数的源代码,并在默认浏览器中显示。
gh_show_source("mutate", "dplyr")
若是加载了该函数所属的R包,直接输入函数名便可。
library(dplyr) gh_show_source(mutate)
该函数在Safari浏览器上可能有问题。
githubinstall
包经过Gepuro Task Views获取Github上的R包列表。Gepuro Task Views天天都会爬取Github并更新信息。不过,你可能一直以来都是经过R界面来更新R包。gh_update_list()
更新R包的方法以下:
gh_update_package_list()