3

我有一个我一直在做的 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')

我收到以下错误消息:

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

Traceback: 1: dyn.load(file, DLLpath = DLLpath, ...)

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

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

4: asNamespace(ns)

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

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

7: doTryCatch(return(expr), name, parentenv, handler)

8: tryCatchOne(expr, names, parentenv, handlers[[1L]])

9: tryCatchList(expr, classes, parentenv, handlers)

10: tryCatch(loadNamespace(name), error = function(e) { warning(gettextf("namespace %s is not available and has been

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

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 ..)。

4

3 回答 3

4

似乎您在以前的 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")) 

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

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" 

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

解决方案

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

所以这就是我为解决问题所做的:

下面的所有内容都在包含该*.RProj文件的目录中。

首先,我通过在终端中运行它来“隐藏” .RData 文件。

mv .RData ./.RData_old

接下来,我在 R 会话(不是 Rstudio)中运行它:

remove.packages('XLConnect', 'XLConnectJars')

然后我关闭了 R 会话并打开了 Rstudio 项目,以确保它可以在没有 RData 文件的情况下正常打开。

之后我得到了我的 RData 文件

mv .RData_old ./.RData

最后,我再次打开项目文件,然后!

它抱怨未安装软件包,但至少我知道需要哪些软件包。此外,我的数据和结果并没有丢失。

于 2017-07-20T17:55:02.273 回答
1

分享我的解决方案:在 Rstudio 中,工具 -> 全局选项 -> 常规 -> 取消选中“启动时恢复最近打开的项目”

以前我删除了我的 .Rprofile,默认为 .Rdata,并在全局选项中取消选中“启动时将 .RData 还原到工作区”。这些都不能阻止在启动 Rstudio 时加载不需要的包。

我现在正在调试可能导致问题的项目,因为我不知道正在打开一个项目。

不确定这是否能解决您的问题,但我发现此页面试图调试我的问题,但我没有看到其他地方取消选中“启动时恢复最近打开的项目”。随时告诉我把这个答案移到别处。

于 2021-11-29T20:16:56.647 回答