2017-07-18 256 views
2

我有一个我一直在研究的Rstudio项目。自从我上次更新Rstudio到1.0.143 - Mac OS X 10.6+(64位)后,项目无法启动。 我认为它可能与启动时自动加载的软件包有关,并且出于任何原因尚未决定停止与R/Rstudio合作。 XLConnect ...如何停止在Rstudio启动时加载的包

我试过从目录中删除.RData,.Rhistory和.Rproj.user。只有删除.RData的工作和Rstudio启动没有问题。我似乎在目录,我的主目录或站点范围的文件中都没有任何.RProfile文件。

现在,我甚至不能因为它有一个错误

R encountered a fatal error. The session was terminated.

我可以打开其他Rstudio会话没有问题崩溃打开Rstudio会议。

当我打开一个单独的R对话(没有R工作室),并尝试

load('path/to/.RData') 

我收到以下错误信息:

*抓到段错误* 地址为0x18,原因'memory not mapped'

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

2:library.dynam(LIB,包,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:loadNamespace(name)

7:doTryCatch(返程(表达式),名称,parentenv,处理程序)

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

9:tryCatchList(表达式,类parentenv,处理程序)

10:tryCatch(loadNamespace(名称),误差=函数(E){警告(gettextf(“命名空间%s不是可用的,并已

替换\ NBY .GlobalEnv处理对象时%s“,sQuote(name)[1L],sQuote(where)),domain = NA,调用。 => FALSE,立即。 = TRUE).GlobalEnv})

11:..getNamespace(C( “openxlsx”, “4.0.17”), “uwc.sel.book”)

12:负载(” ./收存箱/ OxfordTT2017/DNAextraction_26052017/ColWork2017/Fielddata_04052016 /。RDATA“)

可能的动作:

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

2:正常ř出口

3:不保存工作空间

出口ř

4 :退出R保存工作区

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

回答

2

不能使用对象在.RData文件所以这是我做过什么来解决这个问题:下面

一切都在这containes的*.RProj文件的目录。

首先,我通过在终端中运行该命令来'隐藏'.RData文件。

mv .RData ./.RData_old 

接下来,我在R对话(未Rstudio)跑了这一点:

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

然后我关上了R对话,打开了Rstudio项目,以确保它会不RDATA文件打开罚款。

之后,我得到了我的RDATA文件重新

mv .RData_old ./.RData 

最后,我再次打开该项目文件和急!

它抱怨未安装的包,但至少我知道需要哪些包。而且,我的数据和结果不会丢失。

+0

幸运的是,你知道在这种情况下哪些软件包可能出错。但是对于一般用途来说,需要一个空R的环境(无需添加包)。分享'.RData'文件并询问其他人的帮助或安装另一个R可能是一个好主意。 –

2

看来你在之前的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. 您可以在启动时阻止RStudio从加载包中删除ToolsGlobal Options...取消选中Resotore .RData into workspace at startup。你仍然除非你做1
+0

尽管对象需要包吗? ....我会考虑使用你需要包的对象,但是你肯定不需要为没有问题的对象加载包。 – user2465805

+0

我已经告诉你一个例子。您需要回想一下您使用过的软件包并安装了遗漏的软件包。或者你可以分享你的'.RData'文件,我找出你的。你可以把它发送给GitHub。 –

+0

谢谢@ gitzhuoer。我不认为openxlsx是这个问题......我非常确定R与XLConnect的java位有关系(我已经搜索了这个问题并发现了其他有类似问题的人)。我将在下面添加我的解决方案。 – user2465805

相关问题