启动时不需要加载 R 中的包 R/RStudio?

Make package in R not required to load when I startup R/RStudio?

在提问之前,我已经广泛地寻找了这个问题的答案,但找不到答案,但如果它在那里,请指出我。每次我启动 R studio 时,我都会自动加载一些包,例如:

Loading required package: RMySQL
Loading required package: DBI
Loading required package: cocor
Loading required package: RMySQL

我希望每次启动 R studio 时这些包都自动停止加载,并尝试卸载并重新安装 R 和 R studio,此外还有以下方法:

detach("package:RMySQL",unload=TRUE)

对于所有这三个包,它都不起作用。请帮忙!谢谢。

sapply(ls(), function(x) class(get(x)))
named list()

查看 this post,您可能想找到 .RProfile 文件。查看 ?Startup(注意大写 S)以获得更多帮助。 .RProfile 应该位于 /etc/ 文件夹下,无论您的计算机上安装了 R 什么地方。根据上面的 post,找到其位置的快速方法是 运行 以下内容:

candidates <- c( Sys.getenv("R_PROFILE"),
                 file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"),
                 Sys.getenv("R_PROFILE_USER"),
                 file.path(getwd(), ".Rprofile") )

Filter(file.exists, candidates)

从您发布的评论来看,您似乎是 运行 Windows。可以使用以下方式显示用户 .RProfile 的位置:

(my_rprofile <- file.path(Sys.getenv("R_USER"), ".RProfile"))

然后您可以使用以下方法检查该文件是否存在:

file.exists(my_rprofile)

如果这个 returns TRUE,打开它进行编辑使用:

file.edit(my_rprofile)

如果文件不存在,请尝试:

file.exists(".RProfile")

如果TRUE:

file.edit(".RProfile")

如果您在 RStudio 中执行此命令,您应该会打开一个 window,其中包含 .RProfile 的当前内容。我怀疑它包括以下内容:

library("RMySQL")

然后您需要在保存之前适当地删除它。

其他要检查的事项:

Sys.getenv("R_DEFAULT_PACKAGES")
# should be blank
.First
# should give an error that .First not found

如果设置了 .First 并且您没有 .RProfile 文件,您可能在 file.path(Sys.getenv("R_USER"), ".RData") 中定义了它并且值得重命名该文件(或禁用恢复.RData 在 RStudio 选项中。

即使 .First 未定义,我仍然会尝试加载 R/RStudio 而不从 .RData 恢复,因为这可能是您正在恢复一些依赖于那些的 S4 对象包。

我过去处理这个问题的方法是简单地在你的机器上的某个地方创建一个新文件夹作为备用 R 库文件夹,并将相应的包文件夹从你的默认库移动到该文件夹.基本上当 R 搜索这些包时,它不会找到它,因为 R 不知道你将它们移动到哪里,除非你告诉 R 去哪里搜索。 请按照以下步骤执行此操作:

  1. 在您的 PC 上创建一个新文件夹,用作辅助 R 库文件夹。例如,我的 windows 文档中有一个名为 secondRlibrary 的文件夹,其路径如下("C:\Users\myusername\Documents\secondRlibrary")
  2. 转到安装包的 R 库文件夹。在我的 windows PC 上,它位于 "C:\Users\myusername\Documents\R\win-library.0.2" 中。它们有时也可以在以下文件夹中找到:("C:\Program Files\R\R-3.0.2\library","C:\Program Files(x86)\R\R-3.0.2\library"),具体取决于您 运行ning 的 R 版本。(我 运行ning版本 3.0.2)
  3. 查找并移动(剪切并粘贴)各个包的文件夹及其所有内容到新文件夹。这些文件夹的名称通常与 R 包名称相同。这样当 R 启动时。确保将它们从我上面列出的所有文件夹中删除到您刚刚创建的新文件夹中。
  4. 如果您启动 R,这些包将不会自动加载,因为它们不会在 R 的默认库位置找到(并且 R 无法自动找到它们,除非您告诉它)。
  5. 如果要单独加载包,请使用带有 lib.loc 参数的库函数来指定包含该包的库的路径(在本例中为您刚刚创建的新文件夹)。例如,如果我想加载 RMySQL 包,我将使用以下代码

library("package:RMySQL",lib.loc = "C:/Users/myusername/Documents/secondRlibrary")

  1. 或者,如果你不想在上面的库函数中使用 lib.loc 参数,你可以 运行 在你的 R 脚本开始的这一行,也就是说,如果你需要在那些 R 脚本中使用这些包: .libPaths(c(.libPaths(),"C:/Users/myusername/Documents/secondRlibrary"))

然后你可以 运行 没有 lib.loc 参数的库函数。上面的行会将新创建的文件夹添加到 R 用于查找包的默认文件夹列表中。