5
我試圖在R中覆蓋save()
,以便它在保存對象之前創建任何缺少的目錄。我無法使用省略號方法將對象通過一個函數傳遞給另一個函數。如何在嵌套函數中傳遞對象?
我的例子:
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「沒有我的自定義內部存在的save( )函數,但我還沒有想出如何將它從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代碼中的基名以上。謝謝馬修。 –