Rscript を介して実行される非対話型スクリプトで使用するためのパッケージがあります。しかし、主にデバッグ目的で、インタラクティブなセッションでロードできるようにしたいと考えています。Rscript またはその他の非対話型セッションで使用する場合、.onLoad を使用して初期化を行いたいので、次のようなものがあります。
.onLoad <- function(libname, pkgname) {
if ( !interactive() ) {
# Do some stuff
} else {
# Do something slightly different
}
問題は、インタラクティブ セッションであっても、interactive() が .onLoad 内で FALSE を返すことです。私はこれを次の方法でテストします:
.onLoad <- function(libname, pkgname) {
print( paste( "interactive() = ", interactive(), collapse="" ) )
}
次にbuild()
、install()
(devtoolsを使用して)インストールすると、ライブラリがメッセージ付きで添付されます"interactive() = FALSE"
。
何か案は?.onLoad() のドキュメントも interactive() のドキュメントも、関連することは何も言いません。
フィル