From p.dalgaard@biostat.ku.dk  Fri Aug 21 23:34:02 1998
From: p.dalgaard@biostat.ku.dk (Peter Dalgaard BSA)
Date: 22 Aug 1998 00:34:02 +0200
Subject: couldn't find FUN
In-Reply-To: Prof Brian D Ripley's message of Fri, 21 Aug 1998 18:37:01 +0100 (BST)
References: <Pine.GSO.3.96.980821182855.4962E-100000@localhost>
Message-ID: <x2ww82ars5.fsf@biostat.ku.dk>

Prof Brian D Ripley <ripley@stats.ox.ac.uk> writes:

> 
> On Fri, 21 Aug 1998, Paul Gilbert wrote:
> 
> > The call to sweep in this function which was working in 0.62.2 is giving me
> > trouble in 62.3:
..
> 
> If you call sweep on a data frame, as in
> 
> > sweep(crimes, 2, "-")

Um, you need some STATS in there...

> 
> it does not work: it should not have done so before.  On the other hand, in
> 0.62.2, valid arithmetic operations on data frames gave matrices,
> which helped your illegal example but were incorrect on legal ones.
> You need an as.matrix in your code, I believe.
> 
> 
> This example also fails in S.

Still, something weird is going on. First of all, the error message
about not finding "FUN" is less than obvious and secondly, it's not in
general a problem to do arithmetic on data frames as if they were
matrices. (E.g. crimes - as.matrix(crimes)) I think we have some of
the explanation in:

> f<-get("-")                         
> f(crimes,as.matrix(crimes))
Warning: ignored non function "f"
Warning: ignored non function "f"
Warning: ignored non function "f"
Warning: ignored non function "f"
               Murder Assault UrbanPop Rape
Alabama             0       0        0    0
Alaska              0       0        0    0
Arizona             0       0        0    0

i.e. "something" applies "f" for each column and there's some kind of
mess related to scoping (there really is no other "f" around before
the function is called!)

It happens only with .Primitive functions like "-". Stuff like

sweep(crimes, 2, apply(crimes, 2, mean), function(x, y) x - y)

works perfectly.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


couldn't find FUN
Peter Dalgaard BSA