[R] ipred and lda

Philippe Grosjean phgrosjean at sciviews.org
Fri Jan 9 17:32:46 CET 2004

I got also this problem and I solved it a couple of months ago.
Unfortunatelly, I do not have access to the machine with my code before
monday, so, I cannot give you the exact recipe... I am just recalling from
my poor memory!

If I remember, the problem occured when MASS moved to use namespace, so,
predict.lda was not visible externally any more, something that some ipred
function assumed in the version I used at that time. The solution was to
change the code of ipred to explicitly call the predict.lda function in
MASS, that is, something like:

give it a try. Since you use an old version of R (1.7.1), you may face a
similar problem. I suppose the solution is to use latest versions of R, MASS
and ipred.

Philippe Grosjean

P.S.: Andrea and Thorsten: sorry for not having mentioned this when I got
the problem. I was in a rush,... and then I forgot! But I suppose the latest
version of ipred is OK now, isn't it?

 ) ) ) ) )
( ( ( ( (   Prof. Philippe Grosjean
\  ___   )
 \/ECO\ (   Numerical Ecology of Aquatic Systems
 /\___/  )  Mons-Hainaut University, Pentagone
/ ___  /(   8, Av. du Champ de Mars, 7000 Mons, Belgium
 /NUM\/  )
 \___/\ (   phone: +, fax: +
       \ )  email: Philippe.Grosjean at umh.ac.be
 ) ) ) ) )  SciViews project coordinator (http://www.sciviews.org)
( ( ( ( (

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch]On Behalf Of Martin Maechler
Sent: Friday, 09 January, 2004 17:14
To: Stefan Böhringer
Cc: R Help
Subject: Re: [R] ipred and lda

>>>>> "Stefan" == Stefan Böhringer <commercial at s-boehringer.de>
>>>>>     on 09 Jan 2004 16:46:23 +0100 writes:

    Stefan> Dear all, can anybody help me with the program
    Stefan> below? The function predict.lda seems to be defined
    Stefan> but cannot be used by errortest.

    Stefan> The R version is 1.7.1

  >>   library("MASS");
  >>   library("ipred");
  >>   data(iris3);
  >>   tr <- sample(1:50, 25);
  >>   train <- rbind(iris3[tr,,1], iris3[tr,,2], iris3[tr,,3]);
  >>   test <- rbind(iris3[-tr,,1], iris3[-tr,,2], iris3[-tr,,3]);
  >>   cl <- factor(c(rep("s",25), rep("c",25), rep("v",25)));
  >>   z <- lda(train, cl);
  >>   predict(z, test)$class;
  >>   data.frame(class=cl, train);
  >>   flowers <- data.frame(class=cl, train);
  >>   errorest(class ~ ., data=flowers, model=lda, estimator="cv",
  >>   predict=predict.lda);

    Stefan> Error-Message is :
    Stefan> Error: Object "predict.lda" not found

predict.lda is not exported from new versions of MASS
since one should use  predict( <lda-fit> , ...).

i.e., I presume that

errorest(class ~ ., data=flowers, model=lda, estimator="cv",

will work.

BTW: Please, remove the  ";" at the end of lines.
     In S code, they are just plain ugly.

Martin Maechler <maechler at stat.math.ethz.ch>	http://stat.ethz.ch/~maechler/
Seminar fuer Statistik, ETH-Zentrum  LEO C16	Leonhardstr. 27
ETH (Federal Inst. Technology)	8092 Zurich	SWITZERLAND
phone: x-41-1-632-3408		fax: ...-1228			<><

R-help at stat.math.ethz.ch mailing list
PLEASE do read the posting guide!

More information about the R-help mailing list