12

R包精讲第四篇:4种R包安装方式

请先看:R包精讲第一篇:如何查看你已经安装了和可以安装哪些R包?

第一种方式,当然是R自带的函数直接安装包了,这个是最简单的,而且不需要考虑各种包之间的依赖关系。

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

> install.packages("ape")  ##直接输入包名字即可
Installing package into ‘C:/Users/jmzeng/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)  ##一般不指定lib,除非你明确知道你的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
>

对于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") 然后安装新的

第二种方式,是直接找到包的下载地址,需要进入包的主页

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")

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

第三种是,先把包下载到本地,然后安装:

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包之间的依赖性很强!

第四种是:命令行版本安装

如果是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平台一般不推荐命令行格式,可视化那么舒心,何必自讨苦吃

 

12

R包精讲第二篇:如何安装旧版本的包?

既然你点进来看,肯定是有需求咯!
一般来说,R语言自带的install.packages函数来安装一个包时,都是默认安装最新版的。
但是有些R包的开发者他会引用其它的一些R包,但是它用的是人家旧版本的功能,但他自己来不及更新或者疏忽了。
而我们又不得不用他的包,这时候就不得不卸载最新版包,转而安装旧版本包。

Continue reading

11

R包精讲第一篇:如何查看你已经安装了和可以安装哪些R包?

最近经常出现一个错误,类似于package ‘airway’ is not available (for R version 3.1.0)

就是某些包在R的仓库里面找不到,这个错误非常普遍,stackoverflow上面非常详细的解答:

http://stackoverflow.com/questions/25721884/how-should-i-deal-with-package-xxx-is-not-available-for-r-version-x-y-z-wa

在阅读这个答案的时候,我发现了一个非常有用的函数!available.packages()可以查看自己的机器可以安装哪些包!

Continue reading

01

Perl及R及python模块碎碎念

老实说,模块其实是一个很讨厌的东西,但是它也实实在在的节省了我们很多时间,也符合我的理念:避免重复造轮子!

1,perl的那些模块

如果有root权限,用root权限

进入cpan然后install ExtUtils::Installed模块

这样就可以执行instmodsh这个脚本了,可以查看当前环境下所有的模块

Perl及R及python模块碎碎念178

当然也可以写出脚本来查询模块信息

[perl]

#!/usr/bin/perl

use strict;

use ExtUtils::Installed;

my $inst= ExtUtils::Installed->new();

my @modules = $inst->modules();

foreach(@modules)

{

my $ver = $inst->version($_) || "???";

printf("%-12s -- %s\n", $_, $ver);

}

exit 0; 

[/perl]

然后我顺便安装了几个我比较喜欢的模块,Net::Telnet,Net::POP3

安装的时候可以看到我们的perl模块都是安装在/usr/local/lib/perl/5.18.2里面的,还有这个目录/usr/local/share/perl/5.18.2/

其实可以直接查看@INC这个默认变量,perl -e '{print "$_\n" foreach @INC}'

Perl及R及python模块碎碎念646

就知道自己的perl安装在哪些位置了

 

万一没有root权限,那么除非是管理员安装了那些模块,否则很多都是不能用的,那么自己要想安装,就必须自己也用cpan,但是cpan只会把模块安装到自己的目录下面,那么每次使用这个模块都必须添加该模块到@INC这个变量里面,这样perl程序才能找到你自己安装的模块,如果是非root用户,使用cpan,那么一般会创建/home/yourname/.cpan这个隐藏目录下面存储个人的perl模块。

use lib '/home/your-home/perl_lib';

因为有cpan,安装模块也是非常方便的。

我测试了一下,install GD模块

Perl及R及python模块碎碎念1142

擦,好像这个模块安装不了,真奇怪,还需要root权限!可我记得我在前面的服务器没有root权限也安装过一些自己的包,好奇怪呀,可能是这个包的要求比较高吧!我之前安装成功过好几个包Mail-POP3Client等等。

那自己安装模块就只能下载源码包,随便安装后,添加目录到@INC了

2,R的包

如果有root权限,那么直接进入R,里面

> .libPaths()

[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"

[3] "/usr/lib/R/library"

这样就可以看到自己的R包都放在哪些目录下面,这样也可以进去查看这些目录里面的包。

另外一个命令,可以查看本机安装的R包有哪些!installed.packages()[,1]

Perl及R及python模块碎碎念1508

安装一个包也是非常简单的!

但是,如果没有root权限,也是很简单的,同样的install.packages即可,可以创建一个私人的R包存放目录。

~/R/x86_64-pc-linux-gnu-library/3.1

但是R包安装有时候会出现这种错误,但是只出现一次,所以一般是高手解决了。

R包安装 had non-zero exit status,解决方法是

apt-get install  tcl-dev tk-dev

sudo apt-get install libxml2-dev & sudo apt-get install libcurl4-openssl-dev

R这个东西,我个人是不怎么用的,因为数据处理的脚本都是用perl,也就用bioconductor的R包来画一些图,不然就是自己用ggplot2包画一些漂亮的图,但是是在windows平台的,不会在linux平台下面画图的,太麻烦了!

3、python模块安装

一.有root权限那一切好办啦!

直接下载包,然后进入,输入

python setup.py install的前提是你安装了 setuptools 工具

Traceback (most recent call last):

File "setup.py", line 6, in <module>

from setuptools import setup, Extension

ImportError: No module named setuptools

解决方法是apt-get install python-setuptools

当然只有在ubuntu才有这么高效啦!但是我还报错了

fatal error: Python.h: No such file or directory

重新搜索了一下,需要apt-get install python2.7-dev

安装这个python的库文件,里面才有python.h这个文件啦

也是全自动化完成啦!

Unpacking libpython2.7-dev:amd64 (2.7.6-8) ...

Selecting previously unselected package python2.7-dev.

Preparing to unpack .../python2.7-dev_2.7.6-8_amd64.deb ...

Unpacking python2.7-dev (2.7.6-8) ...

Processing triggers for man-db (2.6.7.1-1) ...

Setting up libpython2.7-dev:amd64 (2.7.6-8) ...

Setting up python2.7-dev (2.7.6-8) ...

然后终于不报错啦!!!!Python这个东西真难玩,我还是喜欢perl

Using /usr/lib/python2.7/dist-packages

Finished processing dependencies for rpy2==2.5.6

Python的模块都安装在/usr/lib/python2.7/dist-packages这个目录下面

 

二.没有root权限,就把python安装到自己的模块!安装之后就会增加一个.local目录,存放着python的模块。

 

Perl及R及python模块碎碎念2823

 

但是如果是自己目录安装python模块需要修改~/.bashrc这个文件,并且

export PYTHONPATH=$PYTHONPATH:/my/other/path

这样在python里面才能调用这个模块。

 

 

 

 

 

 

 

 

 

 

 

 

01

R的包(package)

关于R语言包的一些操作,挺重要的!!!

R的包(package)通常有两种:
1 binary package:这种包属于即得即用型(ready-to-use),但是依赖与平台,即Win和Linux平台下不同。
2 Source package: 此类包可以跨平台使用,但用之前需要处理或者编译(compiled)。

以下一些常用的包相关的函数:
.libPaths():查看包的安装目录

ls('package:ggplot2')可以查看该包里面所有的函数
library():查看已经安装的包目录
library(mypackage):载入mypackage包

getOption("defaultPackages"):查看启动R时自动载入的包。
help(package = 'mypackage'):查看‘mypackage’的帮助
args(function):查看函数的参数
example(function):自动运行该函数帮助文档中的例子,很赞!
demo("package"):展示一些包中demostration,需要再看下??
vignette('mypackage'):有的包,特别是bioconductor的包有vignette,用函数查看
openVignette('mypackage'):这个函数也可以查看vignette,更好用一些
RSiteSearch("helpinfor"):搜索R网站上的“helpinfor”相关信息
help.start():查看已经安装包的详细HTML文档,这个命令非常爽
更新:
search():查看当前载入的包

sessionInfo():查看R中载入的包
methods():查看某个S3泛型函数中所有的方法或者一个类中所有的方法(S3:S version 3)

showMethods(class = "myClass"):查看S4类的方法

findMethods("myMethods"):查看method的代码

class(myObject):查看某个对象的类
getClass(“class/package”):查看某个class或者包的具体内容

getSlots("class"):查看某个class的slot

slotNames(MyObject):查看某个对象的slot。

可以使用Myobject@slotNames访问对象的slot值,这个@设计实在是太爽了,可以连续用。
查询包内信息:1. ?function/method:查看某个“函数”或者“方法”的详细内容
2. class?graph::graph:查看“组”的详细内容的一个例子。这个例子的来源是查询graph包时候,查看其中class的信息,输入??graph后出现一个graph::graph-class
ls("package:mypackage"):查看"mypackage"中的所有对象。

安装source package方法

1 在终端输入 # R CMD INSTALL /.../mypackage.tar.gz
使用此方法,需要解决包依赖问题,即安装此包所依赖的包,安装过程有提示

2 也可以使用R的install.packages()函数安装
回答:可以使用install.packages()函数安装,而且比较简便,即联网即可装,装了就可用。
# R
> install.packages('mypackage')

回答2:可以使用install.packages()安装本地下载的包,尤其适用于在服务器上安装包

$ R

> install.packages( c("XML_0.99-5.tar.gz", "http://www.cnblogs.com/Interfaces/Perl/RSPerl_0.8-0.tar.gz"), repos = NULL, configure.args = c(XML = '--with-xml-config=xml-config', RSPerl = "--with-modules='IO Fcntl'"))
3 Bioconductor的安装方法
> source("http://bioconductor.org/biocLite.R")
> biocLite("mypackage")

 

4 卸载package

remove.packages("mypackage")

 

5 查看R及其package的version

R version: version 或者 R.version

R package version:

 

6 更新包

update.packages( )  可以定期执行以下

 

7 使用别人安装的包

修改.bashrc文件,添加环境变量R的lib路径

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

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