【1.2】R包的安装

一、安装方式

1.1 从网络直接安装包

包的安装与调用

install.packages(“**”) #安装
library(“”) #调用某个包

你所需要完成的任务,需要的函数都在包里,你根据需要的函数,选择所需要的包。

例如:

library(vegan)

所有包的安装

update.packages()

有些包得更新是需要管理员权限的。

最省事的方法是通过install.packages(“包名字“)来实现。该函数可以指定安装目录,通过参数lib;也 可以指定包所在的网址,这适合在默认网址下没有找到该包的情况;如下所示:

install.packages("包名字",lib="安装目录",repos="包所在的网址)

也有网友说可以通过参数contriburl指定包所在的网址,如下:

install.packages(“stepNorm”,contriburl=”http://www.your.url”,dependencies = TRUE)

我在尝试这样安装的时候还是出现了上面提到的问题。

> install.packages("ape")  ##直接输入包名字即可
Installing package into ‘C:/Users/jmzeng/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)  ##lib指定库安装到哪里
trying URL 'http://mirror.bjtu.edu.cn/cran/bin/windows/contrib/3.1/ape_3.4.zip'
Content type 'application/zip' length 1418322 bytes (1.4 Mb)
opened URL   ## 根据你选择的镜像,程序会自动拼接好下载链接url
downloaded 1.4 Mb

package ‘ape’ successfully unpacked and MD5 sums checked  ##表明你已经安装好包啦

The downloaded binary packages are in  ##程序自动下载的原始文件一般放在临时目录,会自动删除
	C:\Users\jmzeng\AppData\Local\Temp\Rtmpy0OivY\downloaded_packages

对普通的R包,直接install.packages()即可,一般下载不了都是包的名字打错了,或者是R的版本不够,如果下载了安装不了,一般是依赖包没弄好,或者你的电脑缺少一些库文件,如果实在是找不到或者下载慢,一般就用repos=来切换一些镜像。

对于bioconductor的包,我们一般是

source("http://bioconductor.org/biocLite.R") ##安装BiocInstaller
#options(BioC_mirror=”http://mirrors.ustc.edu.cn/bioc/“) 如果需要切换镜像
biocLite("ggbio")

或者直接BiocInstaller::biocLite('ggbio') ## 前提是你已经安装好了BiocInstaller

某些时候你还需要卸载remove.packages(“BiocInstaller”) 然后安装新的

案例

install.packages("mathpix")

安装失败,然后:

devtools::install_github("jonocarroll/mathpix")

所以需要安装 devtools,

install.packages("devtools")

也安装失败,报错:

Warning messages:
1: In install.packages("devtools") :
  installation of package ‘curl’ had non-zero exit status
2: In install.packages("devtools") :
  installation of package ‘httr’ had non-zero exit status
3: In install.packages("devtools") :
  installation of package ‘devtools’ had non-zero exit status

上面的提示,是因为某些依赖的库版本过低,需要升级一下。

然后:

library("devtools")

yum install openssl-devel
yum install  libcurl

修改安装的library的diamante

> .libPaths()
[1] "C:/Program Files/R/R-3.4.4/library

R中用.libPaths()函数查看lib路径,如果有多个lib,install.packages()默认是安装在第一个目录下

修改.bashrc文件中R lib路径的环境变量

export R_LIBS=/home/.../R/lib64/R/library

就能设定自己lib的默认目录,即使使用的R是别人安装的或是集体共用的,也能拥有自己的library

需要注意的是,安装和执行R的包对R程序有版本要求,所以要求R版本要高一些。只允许高版本R使用低版本包,不允许低版本R使用高版本包

1.2 是直接找到包的下载地址,需要进入包的主页

这样安装的就不需要选择镜像了,也跨越了安装器的版本!

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"
packageurl <- "http://cran.r-project.org/src/contrib/Archive/gridExtra/gridExtra_0.9.1.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
#packageurl <- "http://www.bioconductor.org/packages/2.11/bioc/src/contrib/ggbio_1.6.6.tar.gz"
#packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_1.0.1.tar.gz"

install.packages(packageurl, repos=NULL, type="source")

1.3 从本地安装包-install.packages(“包文件的完整路径“)

可适用于修改R的代码以后,再安装

download.file("http://bioconductor.org/packages/release/bioc/src/contrib/BiocInstaller_1.20.1.tar.gz","BiocInstaller_1.20.1.tar.gz")

##也可以选择用浏览器下载这个包
install.packages("BiocInstaller_1.20.1.tar.gz", repos = NULL)
## 如果你用的RStudio这样的IDE,那么直接用鼠标就可以操作了

或者用choose.files()来手动交互的选择你把下载的源码BiocInstaller_1.20.1.tar.gz放到了哪里。

这种形式大部分安装都无法成功,因为R包之间的依赖性很强!

1.4 下载到本地,在命令行下(不是R窗口)直接输入:

R CMD INSTALL 包文件的完整路径

如果是linux版本,命令行从网上自动下载包如下:

sudo su - -c \
"R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""

如果是linux,命令行安装本地包,在shell的终端

sudo R CMD INSTALL package.tar.gz

window或者mac平台一般不推荐命令行格式,可视化那么舒心,何必自讨苦吃

二、讨论

2.1 查看foo代码:

trace("foo",edit=TRUE)

仅仅用来调试,没有改变source代码

2.2 package ‘ggplot2’ is not available (for R version 3.3.3)

解决办法:

If you are using R-Studio you can change the mirror in Tools->Global Options...->Packages 
改变一下CRAN mirror即可

方法一:

install.packages('package_name', dependencies=TRUE, repos='http://cran.rstudio.com/')

方法二:

options(repos='http://cran.rstudio.com/')

方法三:

该方案要求用户R系统中包含一个.Rprofile 文件

vim ~/.Rprofile
	## Default repo
	local({r <- getOption("repos")
	       r["CRAN"] <- "http://cran.r-project.org" 
	       options(repos=r)
	})

1.调用chooseCRANmirror函数:

> chooseCRANmirror()

R会显示CRAN镜像的列表。chooseCRANmirror(81)

2.从列表中选择镜像并点击确定。

3.通过查看repos选项的第一个元素来获取所选镜像的URL地址:

> options("repos")[[1]][1]

4.将下面的命令添加至.Rprofile 文件中:

options(repos="URL")

其中的URL就是镜像的URL。

  • 在每次安装R包的过程中都会使用相同的CRAN镜像(即离本地最近的镜像地址)。你可能对于R重复地询问选择镜像感到厌烦。按照上述方法所给出的解决方案进行操作,便设定了默认的镜像,R每次就不再询问了。
  • repos选项是默认镜像的名称。使用chooseCRANmirror函数选择镜像时会有一个重要的副作用,即按照选择来设定repos选项。问题是当R退出时,R不会保存选择的镜像为默认镜像。通过在.Rprofile中对repos进行设定,R在启动时会自动恢复你的设定。

2.3 产看包的版本

library('xxx')

sessionInfo()

** preparing package for lazy loading
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : 
  namespace ‘htmltools’ 0.3.6 is being loaded, but >= 0.5.1 is required

ERROR: lazy loading failed for package ‘sass’
* removing ‘/usr/local/lib/R/3.4/site-library/sass’
* installing *source* package ‘fontawesome’ ...
** 成功将‘fontawesome’程序包解包并MD5和检查
** R
** inst
** byte-compile and prepare package for lazy loading
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : 
  namespace ‘htmltools’ 0.3.6 is being loaded, but >= 0.5.1.1 is required
ERROR: lazy loading failed for package ‘fontawesome’
* removing ‘/usr/local/lib/R/3.4/site-library/fontawesome’
ERROR: dependency ‘sass’ is not available for package ‘bslib’
* removing ‘/usr/local/lib/R/3.4/site-library/bslib’
ERROR: dependencies ‘fontawesome’, ‘bslib’ are not available for package ‘shiny’
* removing ‘/usr/local/lib/R/3.4/site-library/shiny’


remove.packages("htmltools")
install.packages("htmltools")

五、各种包的安装

5.1 Stringi

在R中直接安装

install.packages("string")

出现无法联网报错,截图忘记截了,大概就是一个github的网站无法连上,导致后面的安装出错,其实主要就是国内的网打不开那个链接。如果可以让服务器fq,也是可以直接装的

安装stringr包的时候,提示stringi的版本过低,于是删掉之前的版本,再安装:

remove.packages("stringi")
install.packages("stringi")

这个时候会报错,报错的原因是没法下载icu4c-69_1-data-bin-l.zip,于是需要手动来安装:

cd /usr/local/lib/R/3.4/tmp

wget -c http://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip
wget -c https://cran.rstudio.com/src/contrib/stringi_1.7.6.tar.gz

R CMD INSTALL --configure-vars='ICUDT_DIR=/usr/local/lib/R/3.4/tmp' stringi_1.7.6.tar.gz

产看更新版本

> library("stringi")
> sessionInfo()


other attached packages:
[1] stringi_1.7.6

5.2 Install libgit2 on Mac OSX

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2> /dev/null

brew install libgit2

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn