Thanks for your replies !
The lapply hack does the job in my context, so I'll stick to it (and
actually in any case where I expect variable length results).

About your quote from ?apply : I read it some time ago actually - but with
my recent use in "variable length returning FUN", I got fooled...


On Fri, Mar 8, 2013 at 10:43 AM, Patrick Burns <[email protected]>wrote:

> 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<https://stat.ethz.ch/mailman/listinfo/r-help>
>> PLEASE do read the posting guide http://www.R-project.org/**
>> posting-guide.html <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.portfolioprobe.com/blog>
> http://www.burns-stat.com
> (home of:
>  'Impatient R'
>  'The R Inferno'
>  'Tao Te Programming')
>

        [[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.

Reply via email to