如何在 Rstudio 启动时停止加载包

use*_*805 3 r rstudio rdata xlconnect

我有一个我一直在做的 Rstudio 项目。自从我上次将 Rstudio 更新到 1.0.143 - Mac OS X 10.6+(64 位)以来,该项目无法启动。我认为它可能链接到一个在启动时自动加载的包,并且出于某种原因尚未决定停止使用 R/Rstudio。XL连接...

我尝试从目录中删除 .RData、.Rhistory 和 .Rproj.user。仅删除 .RData 有效,并且 Rstudio 启动没有问题。我的目录、我的主目录或站点范围文件中似乎没有任何 .RProfile 文件。

现在我什至无法打开 Rstudio 会话,因为它因错误而崩溃

R encountered a fatal error. The session was terminated.

我可以毫无问题地打开其他 Rstudio 会话。

当我打开一个单独的 R 会话(无 R 工作室)并尝试

load('path/to/.RData')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

* 捕获段错误 * 地址 0x18,导致“内存未映射”

回溯:1:dyn.load(文件,DLLpath = DLLpath,...)

2:library.dynam(lib,包,package.lib)

3: loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]])

4: as命名空间(ns)

5:namespaceImportFrom(ns, loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]), i[[2L]], from = 包)

6:加载命名空间(名称)

7:doTryCatch(返回(expr),名称,parentenv,处理程序)

8:tryCatchOne(expr,名称,parentenv,处理程序[[1L]])

9: tryCatchList(expr、类、parentenv、处理程序)

10: tryCatch(loadNamespace(name), error = function(e) { warning(gettextf("命名空间 %s 不可用,已

处理对象 %s 时被 .GlobalEnv 替换\n", sQuote(name)[1L], sQuote(where)), domain = NA, call. = >FALSE,median. = TRUE) .GlobalEnv})

11: ..getNamespace(c("openxlsx", "4.0.17"), "uwc.sel.book")

12:加载(“./Dropbox/OxfordTT2017/DNAextraction_26052017/ColWork2017/Fielddata_04052016/.RData”)

可能采取的行动:

1:中止(使用核心转储,如果启用)

2:正常R退出

3:退出R而不保存工作空间

4:退出R保存工作区

所以我正在寻找一种方法来阻止 Rstudio 会话在启动时加载包(我不确定它为什么首先这样做,因为我不记得设置任何类型的 RProfile..)。

Zhu*_*ong 5

看来您在之前的 RStudio 章节中创建了一些对象,并且它们需要某些包。当您关闭 RStudio 时,您的工作区将保存在.RData文件中。然后,如果您再次启动该项目,RStudio 将尝试恢复上一个工作区,但这些对象需要某些包才能工作。所以您会看到 RStudio 在启动时加载这些包。

例如,创建一个新的 RStudio 项目。

install.packages('phylobase')
library(phylobase)
mytree <- phylo4(x=matrix(data=c(4,1, 4,5, 5,2, 5,3, 0,4), ncol=2, byrow=TRUE), tip.label=c("speciesA", "speciesB", "speciesC")) 
Run Code Online (Sandbox Code Playgroud)

关闭该项目并重新打开它(确保保存工作空间)。

R version 3.4.1 (2017-06-30) -- "Single Candle"
...
Type 'q()' to quit R.

[Workspace loaded from W:/work/Git/bookdown-minimal/.RData]

Loading required package: phylobase
> search()
 [1] ".GlobalEnv"        "package:phylobase" "tools:rstudio"     "package:stats"     "package:graphics" 
 [6] "package:grDevices" "package:utils"     "package:datasets"  "package:methods"   "Autoloads"        
[11] "package:base" 
Run Code Online (Sandbox Code Playgroud)

mytree是一个S4类对象,可以看到phylobase是自动加载的。您可以参考 S4 类的文档。

解决方案

  1. 您必须安装所需的软件包或放弃该.RData文件。
  2. 您可以通过Tools->Global Options...取消选中来阻止 RStudio 在启动时加载包Resotore .RData into workspace at startup.RData除非执行 1,否则您仍然无法使用文件中的对象。