これは、私が遭遇した問題の最小限の例です。
mylm <- function(formula,data,subset=NULL){
mysubset <- subset # some other clever manipulation
lm(formula,data,mysubset)
}
mydata <- data.frame(x=rnorm(10),y=rnorm(10))
mylm(y~x,mydata) # this fails!
最後の行が失敗する理由は、lm
への呼び出しが含まれておりmodel.frame
、 で評価されますparent.frame
。つまりlm
、コード行が含まれています。
mf <- eval(mf, parent.frame())
ここmf
で、右側の は巧妙に構築された への呼び出しmodel.frame
です。私mysubset
はeval
. おそらく使用できることはわかっていますが、forlm.fit
内の環境を作成する方法はありますか?mylm
parent.frame
lm