2017-07-18 364 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

相關問題