【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