Martin Maechler wrote:
"CAPE" == Charles Annis, P E <charles.an...@statisticalengineering.com>
    on Thu, 19 Mar 2009 22:46:10 -0400 writes:

    >> ?is.na
    >> x <- c(NA, 3, 4, 5, NA)
    >> which(is.na(x))
    CAPE> [1] 1 5

well, of course.

But note that which.na(.) could be implemented to be faster (because needing much less memory) than the above,
notably when  x  is large and  has only few NAs

But this now has *REALLY*  changed into a topic belonging to
R-devel, not R-help

--> hence I've diverted the thread to there.

I have recently entertained similar thoughts, i.e. wished for R
functions that compute which( function_returning_logical(..) )
and also
            any( function_returning_logical(..) )

directly {on .Internal i.e. C-level} instead of going to
construct the potentially huge logical vector.

For what functions should this happen?
I agree that  is.na() is one of them; but then, why not
is.nan() / is.finite() too?

Instead of defining a slew of such functions which.foo(), which.bar(), any.foo(), any.bar(), etc,
it would be nice to have a generic interface such as

   whichApply(x, is.na)
   whichApply(x, is.nan)

anyApply(x, is.na)
where internally, for some functions {in a given internal
table}, the fast shortcut would be used, and for others the
interface would be equivalent to  which( thatFunction( x ) )
A couple of different interfaces to the same idea:

- which() could recognize a few thatFunction(x) calls before evaluating them, and do the fast internal version. (This is hard because it needs to know
that the user hasn't redefined is.na, etc.  Probably not worth doing.)

 - which() could gain a new arg, so that

      which(x, test=is.na)

   would do as your whichApply() does.

Duncan Murdoch
Martin Maechler, ETH Zurich (and R Core team)


    CAPE> Charles Annis, P.E.

    CAPE> charles.an...@statisticalengineering.com
    CAPE> phone: 561-352-9699
    CAPE> eFax:  614-455-3265
    CAPE> http://www.StatisticalEngineering.com
    CAPE> -----Original Message-----
    CAPE> From: r-help-boun...@r-project.org 
[mailto:r-help-boun...@r-project.org] On
    CAPE> Behalf Of Santosh
    CAPE> Sent: Thursday, March 19, 2009 9:37 PM
    CAPE> To: r-h...@r-project.org
    CAPE> Subject: [R] which.na

    CAPE> Hi R- users

    CAPE> I was wondering if there is any function equivalent to which.na used 
in S+?

    CAPE> Thanks much in advance!

    CAPE> Regards,
    CAPE> Santosh

    CAPE> [[alternative HTML version deleted]]

    CAPE> ______________________________________________
    CAPE> r-h...@r-project.org mailing list
    CAPE> https://stat.ethz.ch/mailman/listinfo/r-help
    CAPE> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
    CAPE> and provide commented, minimal, self-contained, reproducible code.

    CAPE> ______________________________________________
    CAPE> r-h...@r-project.org mailing list
    CAPE> https://stat.ethz.ch/mailman/listinfo/r-help
    CAPE> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
    CAPE> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to