Bug in loglin with variable called "c" (PR#198)
Sun, 23 May 1999 08:59:02 +0200 (MET DST)
loglin will fail if there is a global variable called c. I have
fixed this for 0.64.2 and 0.65.
On Sat, 22 May 1999, Cor en Aylin wrote:
> Dear Brian,
> Using the mass library for R (the most recent port dated 16 may 1999) I
Could you give version numbers in such reports please: at the moment there
is an official version (5.3pl037) of MASS for R, plus a pre-release of MASS
for V&R3, and you seem to be using the latter. That is _not_ the most
recent port: it is a different major version (6.1 not 5.3) and please
don't use it unless you like testing pre-release software. BTW, the name is
MASS, not mass or Mass: it is an acronym.
> have encountered a minor problem you might want to be informed about :
> If used the following command:
> mydata.loglm <- loglm(n~ s+c+m, mydata)
> I got an the following error : Error in get(x, envir, mode, inherits) :
> variable "FUN" was not found
>  "get(as.character(f), mode = \"function\")"
>  "match.fun(FUN)"
>  "lapply(y, c, x[i])"
>  "subsets(margin[[k]])"
>  "loglin(data, margins, start = start, fit = fitted, param = param, "
>  " eps = eps, iter = iter, print = print)"
>  "loglm1.default(formula, data, ..., start = st)"
>  "loglm1.data.frame(formula, data, ...)"
>  "loglm(n ~ s + m + c, mydata )"
> Trying to see where the problem sits within loglin I saw that (line 3 of
> traceback) variable "c" is used in lapply, and since my data-variable
> also is called "c" mine was used instead (wrongly). I understood the
> message and I think that I better not use often uses variable-names
> (a..z) as names for my data-vars.
The problem is not in MASS: it is occurring in the R version of loglin.
To reproduce this I have to have a global variable c, not a column c in
the dataframe. So that is the workaround: make your variables columns in
mydata. Here is a example:
c <- quine$Eth
loglm(Days ~ .^2, quine)
To fix this in R, the line in loglin needs to be lapply(y, "c", x[i]).
Kurt: do you want explicitly to get c() from package:base here, to be
safer, or would that be too restrictive?
Brian D. Ripley, firstname.lastname@example.org
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272860 (secr)
Oxford OX1 3TG, UK Fax: +44 1865 272595
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: email@example.com