This is nice fodder for 'The R Inferno' -- thanks.

As Milan said, 'which' will suffice as the function.

Here is a specialized function that only returns a
list and is only implemented to work with matrices.
It should solve your current dilemma.

applyL <-
function (X, MARGIN, FUN, ...)
{
        stopifnot(length(dim(X)) == 2, length(MARGIN) == 1)

        FUN <- match.fun(FUN)
        ans <- vector("list", dim(X)[MARGIN])
        if(MARGIN == 1) {
                for(i in seq_along(ans)) {
                        ans[[i]] <- FUN(X[i,], ...)
                }
        } else {
                for(i in seq_along(ans)) {
                        ans[[i]] <- FUN(X[,i], ...)
                }
        }
        names(ans) <- dimnames(X)[[MARGIN]]
        ans
}


Pat


On 08/03/2013 08:29, Pierrick Bruneau wrote:
Hello everyone,

Considering the following code sample :

----
indexes <- function(vec) {
     vec <- which(vec==TRUE)
     return(vec)
}
mat <- matrix(FALSE, nrow=10, ncol=10)
mat[1,3] <- mat[3,1] <- TRUE
----

Issuing apply(mat, 1, indexes) returns a 10-cell list, as expected.
Now if I do:

----
mat[1,3] <- mat[3,1] <- FALSE
apply(mat, 1, indexes)
----

I would expect a 10-cell list with integer(0) in each cell - instead I get
integer(0), which wrecks my further process.
Is there a simple way to get the result I expect (and the only consistent
one, IMHO) ?

Thanks by advance for your help,

Pierrick Bruneau
http://www.bruneau44.com

        [[alternative HTML version deleted]]

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


--
Patrick Burns
[email protected]
twitter: @burnsstat @portfolioprobe
http://www.portfolioprobe.com/blog
http://www.burns-stat.com
(home of:
 'Impatient R'
 'The R Inferno'
 'Tao Te Programming')

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

Reply via email to