Dear all, I'm trying to use update.formula for removing a function in formula, but when the function has argument set as NA, this doesn't seem to work. I was able to track the issue to terms.formula function (.Internal(terms.formula(..))), but couldn't figure out anything useful from corresponding C code in src/main/model.c. Here's an example of the issue:
> rm(list=ls()) > tmp<-terms.formula(y ~ (x + fn(z = NA)) - fn(z = NA),simplify=TRUE) > tmp y ~ x + fn(z = NA) attr(,"variables") list(y, x, fn(z = NA), fn(z = NA)) attr(,"factors") x fn(z = NA) y 0 0 x 1 0 fn(z = NA) 0 1 fn(z = NA) 0 0 attr(,"term.labels") [1] "x" "fn(z = NA)" attr(,"order") [1] 1 1 attr(,"intercept") [1] 1 attr(,"response") [1] 1 attr(,".Environment") <environment: R_GlobalEnv> > formula(tmp) y ~ x + fn(z = NA) with fn(z=a) it works fine, and also with NA_character_ (but not with NA_real_): > rm(list=ls()) > tmp<-terms.formula(y ~ (x + fn(z = NA_character_)) - fn(z = > NA_character_),simplify=TRUE) > tmp y ~ x attr(,"variables") list(y, x, fn(z = NA_character_)) attr(,"factors") x y 0 x 1 fn(z = NA) 0 attr(,"term.labels") [1] "x" attr(,"order") [1] 1 attr(,"intercept") [1] 1 attr(,"response") [1] 1 attr(,".Environment") <environment: R_GlobalEnv> > formula(tmp) y ~ x Is this what is supposed to happen? Best regards, Jouni Helske ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel