用R语言进行数据分析:包

所有的 R 函数和数据集是保存在(packages)里面的。只有当一个 包被载入时,它的内容才可以被访问。这样做一是为了高效 (完整的列表会耗去大量的内存并且增加搜索的时间), 一是为了帮助包的开发者防止命名和其他代码的中的名字冲突。 这里,我们仅仅从用户的角度来 描述这个问题。

可以使用下面的命令查看你当前环境中安装的包

     > library()

命令中没有参数。为了载入某个特别的包(如包 boot ,其中包含的函数来自 Davison & Hinkley (1997)),使用 如下命令

     > library(boot)

用户可以使用函数 CRAN.packages() 连接因特网 (也可以通过 Windows 和 RAqua 的图形界面上的 Packages 菜单访问) ,并且可以自动更新和安装包。

为了查看当前有那些包载入了,可以用

     > search()

产生搜索列表。有一些列表虽然被载入但不会 出现在搜索列表中。

为了查看已经安装的包的所有可以访问的帮助主题列表, 可以使用

     > help.start()

这将启动一个 HTML 形式的帮助系统,然后通过 Reference 部分链接到所有包的列表。

标准包

标准(基本)包构成 R 原代码的一个重要部分。 它们包括允许 R 工作的的基本函数,和本文档中描述的 数据集,标准统计和图形工具。 在任何 R 的安装版本中,它们都会被自动获得。

捐献包和 CRAN

许多不同作者为 R 捐献了好几百个包。 其中一些包实现了特定的统计方法,另外一些 给予数据和硬件的访问接口,其他则 作为教科书的补充材料。一些包(推荐 包)和二进制形式的 R 捆绑发布。更多的可以从 CRAN (http://CRAN.R-project.org/ 和它的镜像)和其他一些 资源。

命名空间

包有自己的命名空间(namespaces),并且现在所有基本的和推荐的 的包都依赖于包 datasets。命名空间主要三个作用: 它们允许包的作者隐藏函数和数据,即只允许内部用户使用, 它们防止函数在一个用户(或其他包的作者)使用 相同名字时被破坏,它们提供了一种 访问特定包的 某个对象的方法。

例如,t() 是 R 里面的转置函数,但是用户 可能会定义一个函数叫 t。命名空间 防止用户定义的函数居先和破坏 矩阵转置的函数。

有两个操作符和命名空间相关。双冒号操作符 :: 选择一个特定命名空间得到的函数定义。 在上面的例子中,转置函数总是可以通过 base::t 使用,因为它是在包 base 中定义的。 一个包中的函数可以通过这种方式 访问。

三冒号操作符 ::: 可能会出现在一些 R 代码中: 它有点像双冒号操作符,但可以访问隐藏对象。 用户还可能使用函数 getAnywhere(), 它会搜索多重包。

包常常是包之间依赖的(inter-dependent),载入其中一个可能会引起其他包 的自动载入。上面提到的冒号操作符同样会引起 相关包的自动载入。当有命名空间的包自动载入时, 它们不会被自动加入 搜索列表。

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
张乐的头像张乐编辑
上一篇 2015-11-22 02:24
下一篇 2015-11-22 02:34

相关文章

关注我们
关注我们
分享本页
返回顶部