1、综述

越来越多的R包正在由世界上不同的人所创建,其中一部分原因是devtools包使得开发R包1变得更加简单。devtools包不仅让开发R包变得简单,而且用于分发R包。

当开发者发布一个R包的时候,CRAN2一般是最常用的。使用install.packages()函数可以安装发布在CRAN上的R包。例如,如下方法可以安装dplyr包:

  1. install.packages('dplyr')

devtools包的install_github()函数用于从Github上安装R包。

  1. library(devtools)
  2. install_github('hadlley/dplyr')

因此,开发者可以分发正在Github上开发的R包。此外,有些开发者并没有将自己开发的R包提至CRAN的意向。例如,Twitter,Inc在Github上提供的AnomalyDetection包。这时我们可以通过devtools包轻松的安装该R包:

  1. library(devtools)
  2. install_github("twitter/AnomalyDetection")

install.packages()install_github()函数所需的参数是不同的。install.packages()只需包名即可,而install_github()需要提供Github的仓库名。这意味着当你想从Github上安装一个R包的时候你必须准确的记得它的仓库名称。

麻烦的是,我们往往很难记住Github的用户名。开发者在给R包命名的时候一般会考虑包的名称,以便用户方便记忆。然而,他们在给自己取一个Github用户名的时候可能就没那么小心了。例如,ggfortify是Github上的一个非常好的包。但它是由谁开发的呢?用户名是什么呢?答案是sinhrks4。我们似乎很难记住它。

githubinstall包提供了一种类似于install.packages()的方式,只需包名即可安装R包。

  1. #install.packages('githubinstall') #已发布至CRAN
  2. library(githubinstall)
  3. githubinstall('AnomalyDetection')
  1. Suggetion:
  2. - twitter/AnomalyDetection
  3. Do you install the package?
  4. 1: Yes (Install)
  5. 2: No (Cancel)

githubinstall()会从Github的仓库中搜索相应的R包,并询问你是否安装。

此外,如果你只是模糊的记得包名也可以安装成功,githubinstall包通过模糊的字符串会自动纠正包名。

  1. githubinstall("AnomaryDetection")
  2. githubinstall("AnomalyDetect")
  3. githubinstall("anomaly-detection")

2、安装

从CRAN上安装githubinstall

  1. install.packages('githubinstall')

githubinstall包的源代码在Github上可见https://github.com/hoxo-m/githubinstall

3、详细资料

githubinstall包提供了若干有用的函数:

  • githubinstall 或者 gb_install_packages()
  • gh_suggest()
  • gh-suggest_username()
  • gh-list_packages()
  • gh_search_packages()
  • gh_show_source()
  • gh_update_package_list()

这些函数都有相同的前缀gh。githubinstall()gh_install_packages()的别名。

在演示这些函数的用法之前,我们先加载下githubinstall

  1. library(githubinstall)

3.1 从Github上安装R包

给出包名即可,如果只是模糊的记得包名也没关系。

  1. githubinstall("AnomalyDetection")
  1. Suggestion:
  2. - twitter/AnomalyDetection
  3. Do you install the package?
  4. 1: Yes (Install)
  5. 2: No (Cancel)
  6. Selection:

输入"1",按回车即可开始安装R包。建议安装的R包是通过Github上的R包列表给出的。该列表由Gepuro Task Views提供。

如果有多个候选项,输入相应的数字即可。

  1. githubinstall("cats")
  1. Select one repository or, hit 0 to cancel.
  2. 1: amurali2/cats cats
  3. 2: danielwilhelm/cats No description or website provided.
  4. 3: hilaryparker/cats An R package for cat-related functions #rcatladies
  5. 4: lolibear/cats No description or website provided.
  6. 5: rafalszota/cats No description or website provided.
  7. 6: tahir275/cats ff
  8. Selection:

3.2 给出建议的仓库

githubinstall()会提示你安装建议的R包,但我们可能只想知道都有哪些建议。

gh_suggest()以向量的形式返回建议的仓库名。

  1. gh_suggest("AnomalyDetection")
  1. ## [1] "twitter/AnomalyDetection"
  1. gh_suggest("cats")
  1. ## [1] "amurali2/cats" "danielwilhelm/cats" "davidluizrusso/cats"
  2. ## [4] "hilaryparker/cats" "lolibear/cats" "rafalszota/cats"
  3. ## [7] "tahir275/cats"

此外,如果你只是模糊的记得Github用户名的时候,gh-suggest_username()函数非常有用。

  1. gh_suggest_username('hadly')
  1. ## [1] "hadley"
  1. gh_suggest_username("yuhui")
  1. ## [1] "yihui"

3.3 列出R包

gh_list_packages()函数以数据框的形式返回Github上R包的仓库名列表。例如,你想知道谢大大(谢益辉,统计之都创始人)都开发了哪些R包,运行如下:

  1. yihuiverse <- gh_list_packages(username = "yihui")
  2. head(yihuiverse)
  3. ## username package_name title
  4. ## 1 yihui MSG Modern Statistical Graphics (my Chinese book)
  5. ## 2 yihui Rd2roxygen Convert Rd to roxygen documentation
  6. ## 3 yihui animation A gallery of animations in statistics and utilities to create animations
  7. ## 4 yihui crandalf Check all reverse dependencies of your R package on Travis CI
  8. ## 5 yihui formatR Format R Code Automatically
  9. ## 6 yihui fun Use R for Fun

通过返回的结果,我们可以安装谢大大开发的所有R包。

  1. repos <- with(yihuiyverse, paste(username, package_name, sep="/"))
  2. githubinstall(repos)

3.4 通过关键词搜索R包

gh_search_packages()函数返回Github上所有标题包含给定关键词的R包。例如,搜索所有包含lasso关键词的R包,运行如下:

  1. gh_search_packages('lasso')
  2. ## username package_name title
  3. ## 1 ChingChuan-Chen milr multiple-instance logistic regressi..
  4. ## 2 YaohuiZeng biglasso Big Lasso: Extending Lasso Model Fi..
  5. ## 3 huayingfang CCLasso CCLasso: Correlation Inference for ..
  6. ## 4 mlampros FeatureSelection Feature Selection in R using glmnet..
  7. ## 5 pnnl glmnetLRC Lasso and Elastic-Net Logistic Regr..
  8. ## 6 statsmaths genlasso Path algorithm for generalized lass..
  9. ## 7 vincent-dk logitsgl Fit Logistic Regression with Multi-..
  10. ## 8 vincent-dk lsgl Linear Multiple Output Using Sparse..
  11. ## 9 vincent-dk msgl High Dimensional Multiclass Classif..
  12. ## 10 vstanislas GGEE R Package for the Group Lasso Gene-..
  13. ## 11 zdk123 BatchStARS R package for Stability Approach to..
  14. ## 12 zdk123 pulsar R package for Stability Approach to..

3.5 显示Github上给定R函数的源代码

gh_show_source()会在Github上查找指定R函数的源代码,并在默认浏览器中显示。

  1. gh_show_source("mutate", "dplyr")

如果加载了该函数所属的R包,直接输入函数名即可。

  1. library(dplyr)
  2. gh_show_source(mutate)

该函数在Safari浏览器上可能有问题。

3.6 更新R包列表

githubinstall包通过Gepuro Task Views获取Github上的R包列表。Gepuro Task Views每天都会爬取Github并更新信息。不过,你可能一直以来都是通过R界面来更新R包。gh_update_list()更新R包的方法如下:

  1. gh_update_package_list()

从Github上轻松安装R包—githubinstall包--转载的更多相关文章

  1. Linux平台上轻松安装与配置Domino

    Linux平台上轻松安装与配置Domino Domino Server的编译安装过程中需要用到libstdc++-2.9和glibc-2.1.1(或者其更高的版本)两个编译模块,它们是Linux开发编 ...

  2. 安装R语言的包的方法

    安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA")  # 安装 TSA install.packages("TS ...

  3. 安装R语言扩展包vegan

    这周的作业我开始得好迟啊...然而还是要努力做啊... ××××××××××××××我是萌萌哒分割线×××××××××××××××××××××××××××××××××××× 首先,百度进入官方页面,看 ...

  4. 在Fedora25上轻松安装Cuda8

    http://blog.csdn.net/u010158659/article/details/53592891 Cuda 8对于Pacal架构的英伟达新一代显卡(GTX 1070/1080/Tita ...

  5. 安装R语言扩展包diveRsity-1

    今天去了学院的运动会呢-扮熊本熊超开心-写完这篇我补上我的图么么哒 ××××××××××××文末高能预警!!!!!这个包的安装并不是本周的任务!!!!!我真是萌萌哒×××××××××××××× ××× ...

  6. 轻松创建R语言函数包

    讲真,用R这么几年,始终未尝试过写自己的包,看来这就是我与真正程序员的差距了——编程习惯等于没有. 昨天一个偶然的机会想开始写自己的工具包,发现了前期教程的有一些过时.于是,写一个**windows* ...

  7. 在github上保存vscode的配置(后续重新安装vscode时,可以十分方便地从github上下载安装这个保存的配置)

    1 安装拓展 Settings Sync 在 VSCode 拓展中搜索 Settings Sync 并安装,安装完成后,重启 2 设置 Github Person Access Token 进入这个页 ...

  8. 安装R的h5包

    系统 redhat7 安装H5的包, 依赖系统hdf5包,如下安装完, 发现版本不一致, sudo yum install hdf5-devel 解决办法: 移花接木 sudo ln -s /opt/ ...

  9. 【转】如何在Mac系统中安装R的rattle包

    [转自知乎]:https://www.zhihu.com/question/28944497 1. 安装 xquartz (http://xquartz.macosforge.org)2. 安装 GT ...

随机推荐

  1. Linux文件操作相关命令

    1.创建文件夹: [root@izuf6ih01h8fzeziddwkfdz sm]# mkdir a 创建一个名为a的文件夹 2.创建文件: [root@izuf6ih01h8fzeziddwkfd ...

  2. Java设计模式-简单工厂模式(Static Factory Method)

    简单工厂模式(Static Factory Method) 简单工厂模式是类的创建模式,又叫静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂对象决定创建出哪一种 ...

  3. spring MVC学习(一)---前端控制器

    1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的结构图如下: 2.DispatcherServlet其实就是一个Servlet,它继承了H ...

  4. flatpickr功能强大的日期时间选择器插件

    flatpickr日期时间选择器支持移动手机,提供多种内置的主题效果,并且提供对中文的支持.它的特点还有: 使用SVG作为界面的图标. 兼容jQuery. 支持对各种日期格式的解析. 轻量级,高性能, ...

  5. 6 TensorFlow实现cnn识别手写数字

    ------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ---------------------------------- ...

  6. Mac电脑下-nodejs安装卸载升级

    一.Mac 安装nodejs: 1:brew install node 2:官网上下载指定版本(.pkg)双击安装 二.Mac 卸载nodejs: 1: brew的安装方式的卸载:   brew un ...

  7. golang在线手册汇总

    1. golang官网 https://golang.org/ 2. golang中国 http://www.golangtc.com/ http://godoc.golangtc.com/pkg/ ...

  8. android 显示internet 图片

    try { HttpGet httpRequest = new HttpGet(edtUrl.getText() .toString()); HttpClient httpclient = new D ...

  9. Element 中表单非必填数据项 必须为数字的验证问题

    Element-ui 的el-form组建中,自带基本的验证功能,比如某些项必填的验证,直接加入rules 规则中即可,如下实例: 在页面中书写如下: <el-form-item label=& ...

  10. HDU 1532 Drainage Ditches(网络流模板题)

    题目大意:就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速, 本题就是让你求出最大流速,无疑要运用到求最大流了.题中m为水沟数, ...