R 语言 package 基本操作

小星星同学借口说在学习《Learning statistics with R》的时候被安装 package 卡住了,导致后面的学习存在很多障碍,由于我也很长时间没有接触 R,有些生疏了,所以没办法马上解决,但是我觉得几个 package 不应该太大,安装出问题一定是打开的姿势不对。

首先来说,package 或者是 library 之类的“包”,是所有语言或者 projects 中非常重要的一部分核心内容,它们是所有先辈们智慧的结晶,这些 package 往往封装了许多底层或者通用的功能,让我们不必重造太多轮子。然而在复杂的项目中 package 的安装或者载入可能会伴随很多依赖性、兼容性等问题,优秀的项目往往提供相应的包管理工具来解决这些问题,同时也可以简化用户的操作。R 语言中 package 的下载、安装同样有两种方式,用install.package()命令自动下载安装或者手动下载压缩包并手动载入,两者各有利弊,自动载入方便快捷,不需要对逐一安装层层依赖,但是容易对新手(如小星星同学)产生不可知的后果,一旦出错就不知道究竟发生了什么,该怎么办,最后只好卡在这里一动不动 -,-

晚上我自己试了一下,安装了所需要的 lsr, psych, car 三个 package,耗时大概十分钟不到...,下面是总结的一些基本操作:

1. 查看当前电脑已经安装过的 package:

.packages(TRUE)
// 返回结果大致如下:
// [1] "alr4"        "base"        "bitops"      "boot" ...
// ...
// 刚开始大概有 30+

library()
// 会返回每个 package 更为详细的解释

2. 查看已经加载的 package:

// 已经安装过的 package 并不代表会加载到 R 语言的运行环境中,可以通过如下命令(函数)查看
search()
// 返回结果大致如下:
// [1] ".GlobalEnv"        "package:stats"     "tools:RGUI"  ...
// ...
// search 返回 R 运行环境的搜索路径,因此不仅包括 package ,也包括一些会用到的工具,如 GUI 图形界面等

3. 载入需要的 package:

// 现在需要载入电脑中已安装但是未被加载近来的 package
library(package = "survival")
// 或简写为
library(survival)
-- 载入需要的程辑包:splines --
// 同时也会载入其依赖的 package

4. (从运行环境中)移除不需要的 package:

// 当不再需要某些包可以从运行环境中移除:
detach( name = "package:survival" )
// 或简写为:
detach("package:splines")
// 如果安装了 lsr 这个包,可以更方便地移除:
unlibrary( survival )

5. 下载并安装新的 packages:

以天朝尤其是校园网的网速,如果选用默认的镜像下载,很有可能遇到意想不到惊喜,所以最好还是指定镜像来安装,install.package() 方法提供了一些参数,其中 repos = "" 指定镜像的 URL,官网提供了很多可选镜像,就近选择http://mirror.bjtu.edu.cn/cran/

install.packages( pkgs = "car", repos = "http://mirror.bjtu.edu.cn/cran/", dependencies = TRUE )
// dependencies = TRUE 指定自动下载相关依赖,所以可能需要一定时间

UPDATE@2015年05月12日

6. 图形界面 RStudio 中的操作

开源项目 RStudio 为 R 提供图形界面的支持,使 R 看起来用起来都更像 Matlab 了。RStudio 中 package 的操作可以在 Packages 窗口中通过点选的方式进行载入、移除、安装、更新等操作:

rstudio packages window

也可以通过 RStudio->Preferences...->Packages选择对应的镜像:

rstudio preferences