愈來愈多的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()