R-alpha: apply()

Martyn Plummer plummer@iarc.fr
Fri, 22 Aug 1997 18:20:43 +0200


At 12:42 22/08/97, kurt.hornik@ci.tuwien.ac.at wrote:

>The following is identical in R and S, but still strange ...
>
>R> apply(matrix(1:20, nc = 4), 1, table)
>     [,1] [,2] [,3] [,4] [,5]
>[1,]    1    1    1    1    1
>[2,]    1    1    1    1    1
>[3,]    1    1    1    1    1
>[4,]    1    1    1    1    1
>R> apply(matrix(rep(1, 20), nc = 4), 1, table)
>[1] 4 4 4 4 4
>R> apply(matrix(c(1:4, 1, 6 : 8), nc = 4), 1, table)
>[[1]]
>1 3 7 
>2 1 1 
>
>[[2]]
>2 4 6 8 
>1 1 1 1
>
>-k

It is strange, but logical.  The problem is that it's an undocumented
feature. If the help page said something like "If the calls to FUN
return vectors of different lengths then apply returns a list of
length dim(x)[MARGIN]" then it would be less surprising. Or would you
prefer that apply returns an error message if it can't coerce the
result to an array?

Martyn

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
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
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-