首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在启动R/RStudio时,使R中的包不需要加载?

在启动R/RStudio时,使R中的包不需要加载?
EN

Stack Overflow用户
提问于 2015-07-01 16:34:31
回答 3查看 1.8K关注 0票数 13

我在问这个问题之前,已经找了很多答案,但没有找到答案,但如果有答案,请给我指点。每次启动R studio时,我都会自动加载包,例如:

代码语言:javascript
复制
Loading required package: RMySQL
Loading required package: DBI
Loading required package: cocor
Loading required package: RMySQL

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

代码语言:javascript
复制
detach("package:RMySQL",unload=TRUE)

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

代码语言:javascript
复制
sapply(ls(), function(x) class(get(x)))
named list()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-22 16:48:51

根据您发布的评论,看起来您正在运行Windows。可以使用以下方法显示用户.RProfile的位置:

代码语言:javascript
复制
(my_rprofile <- file.path(Sys.getenv("R_USER"), ".RProfile"))

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

代码语言:javascript
复制
file.exists(my_rprofile)

如果返回TRUE,则使用以下方法打开它以进行编辑:

代码语言:javascript
复制
file.edit(my_rprofile)

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

代码语言:javascript
复制
file.exists(".RProfile")

如果TRUE

代码语言:javascript
复制
file.edit(".RProfile")

如果在RStudio中执行此命令,则应该打开一个窗口,其中包含.RProfile的当前内容。我怀疑它包括了这样的内容:

代码语言:javascript
复制
library("RMySQL")

然后,您需要在保存之前酌情删除它。

其他需要检查的事情:

代码语言:javascript
复制
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")中定义了该文件,因此值得重命名该文件(或者禁用RStudio选项中的还原.RData )。

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

票数 5
EN

Stack Overflow用户

发布于 2015-07-01 16:44:36

查看this post,您可能希望找到您的.RProfile文件。请看?Startup (备注大写S)以获得更多帮助。.RProfile应该在机器上安装R的位置下面的/etc/文件夹下。根据上面的帖子,查找其位置的一种快速方法是运行以下命令:

代码语言:javascript
复制
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)
票数 9
EN

Stack Overflow用户

发布于 2015-07-27 23:15:09

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

  1. 在您的PC上创建一个新文件夹,用作辅助R库文件夹。例如,我的windows文档中有一个名为secondRlibrary的文件夹,它具有以下path("C:\Users\myusername\Documents\secondRlibrary")
  2. 转到安装包的R库文件夹。在我的windows PC上,这是"C:\Users\myusername\Documents\R\win-library\3.0.2".中的有时还可以在以下文件夹中找到它们:( "C:\Program \R\R3.0.2\library“,”C:\Program(X86)\R\R-3.0.2\library“),这取决于您正在运行的R版本。
  3. 查找并移动(剪切和粘贴)文件夹及其各自包的所有内容到新文件夹。这些文件夹的名称通常与R包名称相同。R开始的时候是这样的。确保将它们从我上面列出的所有文件夹中移除到您刚刚创建的新文件夹中。
  4. 如果启动R,包将不会自动加载,因为它们不会在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的默认文件夹列表中,以查找包。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31167010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档