私はsave()
をRで上書きしようとしています。そのため、オブジェクトを保存する前に見つからないディレクトリが作成されます。私は、省略記号法を使用してオブジェクトを別の関数に渡すのに問題があります。入れ子関数でオブジェクトを渡す方法は?
私の例:
save <- function(...,file){ #Overridden save()
target.dir <- dirname(file) #Extract the target directory
if(!file.exists(target.dir)) {
#Create the target directory if it doesn't exist.
dir.create(target.dir,showWarnings=T,recursive=T)
}
base::save(...,file=file.path(target.dir,basename(file)))
}
fun1 <- function(obj) {
obj1 <- obj + 1
save(obj1,file="~/test/obj.RData")
}
fun1(obj = 1)
このエラーになり、上記のコード:
Error in base::save(..., file = file.path(target.dir, basename(file))) : object ‘obj1’ not found
私はこの問題は、オブジェクトのOBJ1は '(保存私のカスタムの内側に存在しないことがあることを認識)関数を使っていますが、fun1からbase :: saveに渡す方法はまだ分かりません。
私が試してみました:
base::save(parent.frame()$...,file=file.path(target.dir,basename(file)))
と:
base::save(list=list(...),file=file.path(target.dir,basename(file)))
をなし成功を収めて。
提案がありますか?あなたは、親の環境を指定するには、「ベース::救う」必要
修正base.name上記のコードでベース名します。 Matthewに感謝します。 –