2017-06-27 10 views
1

現在、Rパッケージを開発中です。クラスR6のオブジェクトを含めることを基本としています。これは、ユーザーが簡単に使用できるようにするためです(同じ方法でパッケージ)。RパッケージにR6クラスオブジェクトを含める

私はR6ClassConstructor Gridworldを持っている:

Gridworld <- R6::R6Class(...) 

それから私はR6クラスを生成しgrid = Gridworld$new()を使用して新しいインスタンスを作成することができます。私はこのオブジェクトをgridのパッケージに保存したいので、ユーザーはgridと入力するだけで使用できます。

私は/dataフォルダに.RDataオブジェクトとしてgridを保存しようと/RフォルダにR6クラスを文書化:

#' Gridworld 
#' @format R6 class 
"grid" 

が、これはdevtools::documentでエラーが発生します。ファイル「grid.RDataは」魔法を持っていますnumber 'X'

R6クラスオブジェクトをパッケージに含めるにはどうすればよいですか?

答えて

0

パッケージがロードされたときにnewに電話するのが最善でしょう。この方法では、参照セマンティクスに関して何の問題もありません。

はあなたのケースでは答えhere

を参照してください、これは

# file R/zzz.R 
.onLoad <- function(libname, pkgname){ 
    gridworldInstance <- Gridworld$new() 
} 

# documentation 
#' Instance of grid world 
#' 
#' some description 
#' 
#' @name gridworldInstance 
NULL 
#' @export 
+0

良いアイデアのようになります!しかし、エラーメッセージが表示されます。 "エラー:オブジェクト 'gridworldInstance'が見つかりませんでした。' library( "mypackage"); gridworldInstance'です。 '< - 'の代わりに '<< - 'を使用すると、グローバルワークスペースに 'gridworldInstance'が存在しますが、パッケージのロード時にグローバルワークスペースを変更したくありません。いずれの場合でも、ヘルプページは '?gridworldInstance'を介してアクセスできません。 – needRhelp

関連する問題