R中查看包的情况

1、查看已经加载的包: (.packages())
2、卸除已经加载的包: detach("package:包名")
3、卸载包:remove. packages("包名")
4、查看已经装过的包:installed.packages()
5、查看包内提供的函数:help(package="包名")
6、命名空间的使用
为什么要使用命名空间?
https://blog.csdn.net/qq_36337754/article/details/89422135
答:为了防止函数名冲突。因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。而且问题的关键在于,我们在写函数的时候并不知道会有冲突!
https://www.jianshu.com/p/caf44731f3c0
在R中有四个函数可以调用第三方包中的函数或者数据集,其中根据功能可以分为载入(load)和绑定(attach),同时根据返回值的不同可以分为是否抛出error或是否返回false
loadNamespace("x"):load,在查询不到该包时返回error并停止运行代码
requireNamespace("x", quietly = TRUE):load,在查询不到该包时返回False,反之为True
library(x):attach,在查询不到该包时返回error并停止运行代码
require(x, quietly = TRUE):attach,在查询不到该包时返回False,反之为True
平时在使用的时候,library主要在实际操作中使用,如果在开发包的时候尽量不要用,因为如果包未找到,则会终止程序,这里可以用require代替,可以试运行下面的测试代码,比较一下输出的差异

{library("xxx");1+1}
{require("xxx");1+1}

而requireNamespace("x", quietly = TRUE)可以将其返回值作为后面代码的输入信息,如经常使用的检查包是否安装好的代码

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

你可能感兴趣的:(R中查看包的情况)