私の究極の目標は、機能していすることができることです。Rの新しい環境に `` ... ``をどうやって渡すのですか?
- は機能上で動作し
- 関数を返すreturn関数がその親として.GlobalEnvと新しい環境を作成し、
- を新しい環境内の引数関数を評価します。
それはこのような何か働くだろう:私はこれをしたい理由は、私は多くの場合、私はその大きな項目が含まれている関数内モデル/ ggplotを生成するアプリケーションを持っているということです
# Create an object that doesn't exist in the new.env
iris2 <- iris
model <- in_new_env(lm)(Sepal.Length ~ Sepal.Width, iris2)
をmodel/ggplot呼び出しでは直接使用されません。これらのオブジェクトは呼び出し環境を抱えているため、オブジェクトを保存すると非常に大きくなったり、並列クラスタから戻ったりします。
マイスタートの試行は次のとおりです。
in_new_env <- function(.f){
function(...) {
env <- new.env(parent = globalenv())
# This doesn't seem to actually export the ... to env
assign("...", ..., envir = env)
env$.f <- .f
with(env, .f(...))
# Error in eval(expr, envir, enclos) : '...' used in an incorrect context
}
}
私はenv
に...
をエクスポートすることができた場合、これは動作します。これはどうすればいいですか?出来ますか? in_new_env
の代替戦略の提案はありますか?
これは、Bill Dunlap hereによって提案されたソリューションの便利なラッパーになります。
最近発表されたggghostパッケージを見てみると、ggplot2関数チェーンのように(少なくとも私が理解しているように)このようなことをしているようです。 (私はそれについての経験はありません)具体的には、「ggghostオブジェクトに含まれるコールを一覧表示する」と記述されている 'summary.ggghost'が要件を満たすかもしれないと考えています。 –