13

在询问之前,我已经广泛寻找答案,但找不到答案,但如果它在那里,请指点我。每次我启动 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()
4

3 回答 3

9

看看这篇文章,你可能想找到你的.RProfile文件。查看?Startup(注意大写 S)以获得更多帮助。它.RProfile应该/etc/位于机器上安装 R 的文件夹下。根据上面的帖子,找到其位置的快速方法是运行以下命令:

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)
于 2015-07-01T16:44:36.350 回答
5

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

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

然后,您可以使用以下命令检查该文件是否存在:

file.exists(my_rprofile)

如果返回TRUE,请使用以下命令打开它进行编辑:

file.edit(my_rprofile)

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

file.exists(".RProfile")

如果TRUE

file.edit(".RProfile")

如果您在 RStudio 中执行此命令,您应该会打开一个窗口,其中包含.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 对象。

于 2015-07-22T16:48:51.777 回答
2

我过去处理这个问题的方法是简单地在你的机器上的某个地方创建一个新文件夹作为备用 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\3.0.2”中。它们有时也可以在以下文件夹中找到:("C:\Program Files\R\R-3.0.2\library","C:\Program Files(x86)\R\R-3.0.2\library" ),取决于您正在运行的 R 版本。(我正在运行版本 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 的默认文件夹列表中以查找包。

于 2015-07-27T23:15:09.887 回答