由於RStudio,devtools和roxygen2,我目前正在創建我的第一個R包(帶有R6類的R)。當我的包只包含函數時,我可以毫無問題地構建和加載它。但是當我想記錄R6類(在這個包https://cran.r-project.org/web/packages/data.tree/data.tree.pdf中使用像「Node」這樣的字段和方法)時,RStudio不想構建這個包。我試圖找到在論壇上的伎倆,但有關此問題的信息非常匱乏創建並記錄一個包含R6類的包
我的方法:
- 打開Rstudio,創建一個新的項目,我選擇「R包」
- 我填寫包的名稱,我選擇我的包將基於的源文件(一個函數和3個類)。
- 在這一點上,程序是正常的,因爲我用「man」描述了我的不同類,「R」用這些類的不同腳本獲得了正確的結構。
但是當我嘗試建立並重新加載包(已預先加載的R6包)有一個錯誤:
==> R CMD INSTALL --no-multiarch --with-keep.source esa
* installing to library ‘/home/cha/R/x86_64-pc-linux-gnu-library/3.0’
* installing *source* package ‘esa’ ...
** R
** preparing package for lazy loading
Error in eval(expr, envir, enclos) :
impossible de trouver la fonction "R6Class" (translation: impossible to find the function "R6Class")
Error : unable to load R code in package ‘esa’
ERROR: lazy loading failed for package ‘esa’
* removing ‘/home/cha/R/x86_64-pc-linux-gnu-library/3.0/esa’
* restoring previous ‘/home/cha/R/x86_64-pc-linux-gnu-library/3.0/esa’
Exited with status 1.
我不知道如何爲Rstudio是正確解決這個錯誤:R6Class不是一個功能!
我的問題:
我的程序是否正確?我該如何解決這個錯誤?
我需要知道Rstudio是否能夠在R包構建中考慮R6類? 如果沒有,我可以手動完成,但我只需要知道爲了不要再用RStudio來試試我的時間:)
預先感謝您的幫助!
Cha
您已經分享了您收到的錯誤,但不是生成它的實際代碼。請提供一個最小的[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – MrFlick
事實上,沒有那麼多的代碼,我做了所有的程序與RStudio(如我在問題中詳細說明的步驟中所述)。 我有我的R6class代碼(一個非常基本的一個): ELEM < - R6Class( 「elem_data」, 公共=名單( ELEM = NA ),#公共 私人=名單( amethod方法=功能( )self $ name )#private ) –